ToB企服应用市场:ToB评测及商务社交产业平台

标题: Spring IOC官方文档学习笔记(九)之基于注解的容器配置 [打印本页]

作者: 卖不甜枣    时间: 2023-2-6 23:44
标题: Spring IOC官方文档学习笔记(九)之基于注解的容器配置
1.基于注解的配置与基于xml的配置
(1) 在xml配置文件中,使用context:annotation-config标签即可开启基于注解的配置,如下所示,该标签会隐式的向容器中添加ConfigurationClassPostProcessor,AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,PersistenceAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor这5个后置处理器,用于注解配置
  1. <beans ....>
  2.    
  3.     <context:annotation-config></context:annotation-config>
  4.    
  5.    
  6. </beans>
复制代码
(2) Spring同时支持基于注解的配置与基于xml的配置,可以将两者混合起来使用;注解配置会先于xml配置执行,因此,基于xml配置注入的属性值会覆盖掉基于注解配置注入的属性值,如下所示
  1. //定义一个普通bean@Component(value = "exampleA")public class ExampleA {        //通过注解,注入属性值    @Value("Annotation injected")    private String str;    public void setStr(String str) {        this.str = str;    }    public String getStr() {        return str;    }}<beans ....>
  2.    
  3.     <context:annotation-config></context:annotation-config>
  4.    
  5.    
  6. </beans>        //测试,打印结果为 xml inject,证明注解方式会先于xml方式执行ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("boke/from.xml");System.out.println(((ExampleA) ctx.getBean("exampleA")).getStr());
复制代码
2.@Required
(1) @Required注解用于setter方法上,表示某个属性值必须被注入,若未注入该属性值,则容器会抛出异常,从Spring 5.1版本开始,该注解已被弃用,Spring目前推荐使用构造函数注入来注入这些非空依赖项,如下所示
  1. //ExampleA有一个非空属性strpublic class ExampleA {    private String str;    @Required    public void setStr(String str) {        this.str = str;    }}<beans ....>
  2.    
  3.     <context:annotation-config></context:annotation-config>
  4.    
  5.    
  6. </beans>            
复制代码
3.@Autowired
未完待续...

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4