【总结】使用 Spring 2.5 注释驱动的 IoC 功能

原来也看过关于 Spring 2.5 关于注释方面的新特性,但是一直没有一个全面的了解。看完了 IBM developerWorks 上的《[url=http://www.ibm.com/developerworks/cn/java/j-lo-spring25-ioc/?ca=drs-tp0808]使用 Spring 2.5 注释驱动的 IoC 功能[/url]》 后,对这方面的知识有了全面的了解。下面我对这篇文章做一个总结,也是对所学的东西的一个巩固。

使用注释驱动 IoC,相对于使用 XML 配置文件的好处是更加简练,对开发人员更加友好,不必在配置文件和代码之间来回切换。但是注释只能用于自己编写的代码,对于第三方类就不能使用了。同时,对于经常会发生变动的配置,也不宜使用注释。

使用注释之前,需要在 Spring Context 配置文件中设置对注释的支持。Spring 2.5 提供了 AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、 PersistenceAnnotationBeanPostProcessor 和 RequiredAnnotationBeanPostProcessor 这四个主要的关于 Annotation 的 BeanPostProcessor。我们可以使用 <context:annotation-config /> 来方便地、一次性的声明者四个 BeanPostProcessor。Autowired... 提供对 Spring 特有的 Autowired 和 Qualifier 注释。CommonAnotation... 用于支持 JSR 250 的注释。Persistence... 和 Required... 在本文中没有说明,前者用于 JPA 的 PersistenceUnit 和PersistenceContext 注释;后者用于检查被 Required 注释标记的属性是否被设定。

但是用传统的 <bean> 去声明这些 PostProcessor 的做法并不简洁,Spring 2.5 为我们提供了更加简介的方法:<context:annotation-config />。

在具体的 Annotation 使用方面,我们可以使用 Spring 2.5 的 @Autowired 来标记我们需要注入的 Bean,它可以应用在 setter 方法或者构造方法上。我们也可以使用 JSR 250 的 @Resource 来实现相同的目的。这两个 Annotation 之间最大的不同在于 @Autowired 是 by-type 的,@Resource 是 by-name 的。在使用 @Autowired 的时候需要主要 Bean 不唯一的情况。

JSR 250 还有两个比较重要的 Annotation:@PostConstruct 和 PreDestroy,这里就不多说了。

上面提到的 @Autowired 和 @Resource 解决了 Bean 注入的问题,但是还没有为 Bean 的声明提供一条简洁的途径。@Component 实现了这一点。

但如果要使用 @Component,我们要在 applicationContext*.xml 里加入 <context:component-scan />,Spring 配置文件的终极简化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值