Spring@Autowired注解.docxVIP

  • 1
  • 0
  • 约1.02万字
  • 约 11页
  • 2018-01-02 发布于河南
  • 举报
Spring@Autowired注解

?Spring@Autowired注解自Spring诞生以来,bean/的autowire和dependency-check属性便一直存在。当JDK 5.0正式发布后,Spring针对dependency-check属性引入了对应的@Required。同理,它针对autowire属性引入了对应的@Autowired注解,其定义摘录如下。?Java代码??@Retention(RetentionPolicy.RUNTIME)?? ??@Target({ElementType.CONSTRUCTOR,?ElementType.FIELD,?ElementType.METHOD}) ??public?@interface?Autowired?{?? ????//是否必须满足依赖性检查?????boolean?required()?default?true;? ??}???[java]?view plaincopy@Retention(RetentionPolicy.RUNTIME)????@Target({ElementType.CONSTRUCTOR,?ElementType.FIELD,?ElementType.METHOD})??public?@interface?Autowired?{??????//是否必须满足依赖性检查????boolean?required()?default?true;???}???@Autowired注解能够作用于构建器、属性、方法。这里的方法不局限于设值方法,即setter方法,常见的各种方法都可以应用这一注解。比如,位于autowiringdemo项目中的TestBean1类的testBean2和testBean3属性应用了这一注解,具体如下。?Java代码??@Autowired(required=false)?? ??private?TestBean2?testBean2;?? ????@Autowired? ??private?TestBean3?testBean3;??[java]?view plaincopy@Autowired(required=false)????private?TestBean2?testBean2;??????@Autowired???private?TestBean3?testBean3;??为启用这一注解,AutowiredAnnotationBeanPostProcessor必须定义在XML配置文件中,示例如下,摘自autowired.xml。运行时,testBean2和testBean3受管Bean会自动注入到testBean1中。开发者是否注意到@Autowired暴露的required属性,这是承担着依赖性检查任务的重要属性。默认时,凡是应用了@Autowired注解的属性和方法都必须找到合适的协作者,否则DI容器会抛出异常,通过调整required属性取值能够改变这一行为。?Java代码??bean?class=org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor/ ??bean?id=testBean1?class=test.TestBean1/?? ????bean?id=testBean2?class=test.TestBean2/?? ????bean?id=testBean3?class=test.TestBean3/????[java]?view plaincopybean?class=org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor/??bean?id=testBean1?class=test.TestBean1/??????bean?id=testBean2?class=test.TestBean2/??????bean?id=testBean3?class=test.TestBean3/????下面给出了应用于设值方法的@Autowired注解。?Java代码??@Autowired(required=false)?? ??public?void?setTestBean2(TestBean2?testBean2)?{?? ??????this.testBean2?=?testBean2;?? ??}?? ????@Autowired? ??public?void?setTestBean3(TestBean3?testBean3)?{?? ?????this.testBean3?=?testBean3;?? ??

文档评论(0)

1亿VIP精品文档

相关文档