当前位置: 首页 > news >正文

做中英文网站要注意什么商城网站开发哪家好

做中英文网站要注意什么,商城网站开发哪家好,建站软件免费版下载,怎么完整下载网站模板介绍 Aware#xff08;感知#xff09;接口是一个标记#xff0c;里面没有任何方法,实际方法定义都是子接口确定#xff08;相当于定义了一套规则#xff0c;并建议子接口中应该只有一个无返回值的方法#xff09;。 我们知道spring已经定义好了很多对象#xff0c;如…介绍 Aware感知接口是一个标记里面没有任何方法,实际方法定义都是子接口确定相当于定义了一套规则并建议子接口中应该只有一个无返回值的方法。 我们知道spring已经定义好了很多对象如ApplicationContext、BeanFactory、Environment等但是这些对象是spring框架自身的我们去获取这些是及其困难的所以spring定义了一套规则能让我们很容易得获取框架中的对象这就是Aware的意义现在对Aware有一定了解了吧Aware是感知spring容器中的对象。 spring定义了很多子接口并已实现可直接可用下图均为spring中的子接口。 如图第一个ApplicationContextAware类名很清晰的告诉我们是感知ApplicationContextApplicationContext都知道是spring容器所以这里表示感知容器就是我们想获取ApplicationContext只需要实现这个接口就行。 注意 这里的接口名都是有规则的如ApplicationContextAware就是获取ApplicationContext的BeanFactoryAware就是获取BeanFactory的见名知意。 源码 public interface ApplicationContextAware extends Aware {/*** 只有一个方法实现这方法spring在启动过程中会默认将* 调用此方法并将ApplicationContext参数传递过来这样* 我们就能很容易的获取到ApplicationContext了*/void setApplicationContext(ApplicationContext applicationContext) throws BeansException;} 例子 Teacher类并实现ApplicationContextAware 接口 package com.lp.entity;import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware;public class Teacher implements ApplicationContextAware {private String name;private ApplicationContext applicationContext;public ApplicationContext getApplicationContext() {return applicationContext;}public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return Teacher{ name name \ };}Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext applicationContext;} }配置文件 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsdcontext:component-scan base-packagecom.lp/bean idteacher classcom.lp.entity.Teacherproperty namename valuezhangsan//bean /beans测试看一看Teacher类中能不能获取到ApplicationContext对象 package example.lp;import com.lp.entity.Teacher; import org.springframework.context.support.ClassPathXmlApplicationContext;public class test {public static void main(String[] args) {ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext(application.xml);Teacher teacher (Teacher)context.getBean(teacher);System.out.println(------------ApplicationContextteacher.getApplicationContext());} }从结果中可以清晰的看到已经获取到了ApplicationContext对象当我们需要其他对象也可以看看其他Aware子接口直接实现即可。 自定义Aware接口简单看一下 spring中有一个ApplicationContextAwareProcessor类里面就是实现这些子接口功能的invokeAwareInterfaces方法就是具体逻辑。 class ApplicationContextAwareProcessor implements BeanPostProcessor {private final ConfigurableApplicationContext applicationContext;private final StringValueResolver embeddedValueResolver;/*** Create a new ApplicationContextAwareProcessor for the given context.*/public ApplicationContextAwareProcessor(ConfigurableApplicationContext applicationContext) {this.applicationContext applicationContext;this.embeddedValueResolver new EmbeddedValueResolver(applicationContext.getBeanFactory());}OverrideNullablepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {if (bean instanceof Aware) {invokeAwareInterfaces(bean);}return bean;}private void invokeAwareInterfaces(Object bean) {if (bean instanceof EnvironmentAware environmentAware) {environmentAware.setEnvironment(this.applicationContext.getEnvironment());}if (bean instanceof EmbeddedValueResolverAware embeddedValueResolverAware) {embeddedValueResolverAware.setEmbeddedValueResolver(this.embeddedValueResolver);}if (bean instanceof ResourceLoaderAware resourceLoaderAware) {resourceLoaderAware.setResourceLoader(this.applicationContext);}if (bean instanceof ApplicationEventPublisherAware applicationEventPublisherAware) {applicationEventPublisherAware.setApplicationEventPublisher(this.applicationContext);}if (bean instanceof MessageSourceAware messageSourceAware) {messageSourceAware.setMessageSource(this.applicationContext);}if (bean instanceof ApplicationStartupAware applicationStartupAware) {applicationStartupAware.setApplicationStartup(this.applicationContext.getApplicationStartup());}if (bean instanceof ApplicationContextAware applicationContextAware) {applicationContextAware.setApplicationContext(this.applicationContext);}}}自己实现Aware接口 这个需要了解一下spring启动过程跟BeanPostProcessor这个接口有关也需要了解BeanPostProcessor的执行时机这里我就不介绍了我自己写了一个示例这里只是展示怎么实现Aware的。 package com.lp.entity;import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware;public class Teacher implements ApplicationContextAware {private String name;private ApplicationContext applicationContext;public ApplicationContext getApplicationContext() {return applicationContext;}public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return Teacher{ name name \ };}Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext applicationContext;} }package com.lp.entity;import com.lp.TeacherAware;public class Student implements TeacherAware {private String name;private Teacher teacher;public Teacher getTeacher() {return teacher;}public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic void setTeacher(Teacher teacher) {this.teacher teacher;} } package com.lp;import com.lp.entity.Teacher; import org.springframework.beans.factory.Aware;public interface TeacherAware extends Aware {void setTeacher(Teacher teacher); } package com.lp;import com.lp.entity.Teacher; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.stereotype.Component;Component public class TeacherAwareBeanPostProcessor implements BeanPostProcessor {private final ConfigurableApplicationContext applicationContext;Autowiredpublic TeacherAwareBeanPostProcessor(ConfigurableApplicationContext applicationContext) {this.applicationContext applicationContext;}Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {if (bean instanceof TeacherAware teacherAware){teacherAware.setTeacher(applicationContext.getBean(Teacher.class));}return bean;} }?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsdcontext:component-scan base-packagecom.lp/bean idteacher classcom.lp.entity.Teacherproperty namename valuezhangsan//beanbean idstudent classcom.lp.entity.Studentproperty namename valuelisi//bean/beanspackage example.lp;import com.lp.entity.Student; import com.lp.entity.Teacher; import org.springframework.context.support.ClassPathXmlApplicationContext;public class test {public static void main(String[] args) {ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext(application.xml);//Teacher teacher (Teacher)context.getBean(teacher);//System.out.println(------------ApplicationContextteacher.getApplicationContext());Student student (Student)context.getBean(student);System.out.println(------------Teacherstudent.getTeacher());} } 从上述代码和结果中可以看到我创建了两个bean一个Student和一个Teacher我用Aware方式实现了将Student中的Teacher属性注入当然这个场景可能不是很合适但这里主要是演示怎么自己实现Aware接口需要自己写一个接口实现Aware接口并之定义一个方法接口名最好是遵循spring规则且只有一个void方法创建一个实现BeanPostProcessor的对象并写出具体实现逻辑这儿需要你了解spring启动流程并且知道BeanPostProcessor接口的作用。 希望对你有帮助别忘了点赞
http://www.hkea.cn/news/14463783/

相关文章:

  • 物流公司做网站广州著名网站建设公司
  • 深圳网站建设公司开发制作网站网站设计的公司蒙特
  • 影评网站建设网站建设结构框架
  • 哈尔滨网站优化流程学网络营销有用吗
  • 建网站教学html教程菜鸟教程语法
  • 网站申请支付宝支付小语种建站
  • 网店运营公司seo基础优化包括哪些内容
  • 文网文网站建设wordpress禁止保存图片
  • 东莞大朗网站建设公司找做网站
  • 连云港建设企业网站为了提高软件开发效率应采用什么
  • 八零云自助建站免费建站平台做网站打开图片慢
  • 南昌专业的学校网站建设公司品牌网站建设推荐大蝌蚪
  • 成都专业手机网站建设推广网站建设 swot分析
  • wordpress 做成app做外贸seo优化的上市公司
  • 太原制作网站企业网站制作公司排名
  • 襄阳做网站公司windows卸载wordpress
  • 网站怎么做好茶叶网站建站
  • 网站建设的运用场景wordpress做线下交易
  • 久久seo综合查询windows优化大师卸载不了
  • 仿牌网站服务器石家庄网站建设公司哪家好
  • 网站ui设计给用户提交什么中扶建设网站
  • 搭建网站的过程成都那家做网站好?
  • 长春网站建设58同城wordpress英文模板下载地址
  • 网站开发工程师缺口app软件开发平台有哪些
  • 北海涠洲岛旅游网站建设分析外贸自主建站平台
  • 三亚做网站公司wordpress菜单保存不
  • 用科讯cms做网站的步骤做美食网站的需求
  • 三亚网站设计公司郑州免费网站建设
  • 网上商城网站名称网站如何三合一
  • 设计师网站建设外贸是做什么的学什么专业