详解Spring 3.0基于Annotation的依赖注入实现 - 编程入门网
默认的无参数构造方法。然后在配置扫描 器时提供一个全限定类名,如下所示:
与通过 XML 配置的 Spring Bean 一样,通过上述注解标识的 Bean,其默认作用域是"singleton", 为了配合这四个注解,在标注 Bean 的同时能够指定 Bean 的作用域,Spring 2.5 引入了 @Scope 注解 。使用该注解时只需提供作用域的名称就行了,如下所示:
如果你想提供一个自定义的作用域解析策略而不使用基于注解的方法,只需实现 ScopeMetadataResolver 接口,确认包含一个默认的没有参数的构造方法。然后在配置扫描器时提供全限 定类名:
使用 @PostConstruct 和 @PreDestroy 指定生命周期回调方法 Spring Bean 是受 Spring IoC 容器管理,由容器进行初始化和销毁的(prototype 类型由容器初始 化之后便不受容器管理),通常我们不需要关注容器对 Bean 的初始化和销毁操作,由 Spring 经过构造 函数或者工厂方法创建的 Bean 就是已经初始化完成并立即可用的。然而在某些情况下,可能需要我们手 工做一些额外的初始化或者销毁操作,这通常是针对一些资源的获取和释放操作。 Spring 1.x 为此提供 了两种方式供用户指定执行生命周期回调的方法。 第一种方式是实现 Spring 提供的两个接口:InitializingBean 和 DisposableBean。如果希望在 Bean 初始化完成之后执行一些自定义操作,则可以让 Bean 实现 InitializingBean 接口,该接口包含 一个 afterPropertiesSet() 方法,容器在为该 Bean 设置了属性之后,将自动调用该方法;如果 Bean 实现了 DisposableBean 接口,则容器在销毁该 Bean 之前,将调用该接口的 destroy() 方法。这种方 式的缺点是,让 Bean 类实现 Spring 提供的接口,增加了代码与 Spring 框架的耦合度,因此不推荐使 用。 第二种方式是在 XML 文件中使用 <bean> 的 init-method 和 destroy-method 属性指定初始 化之后和销毁之前的回调方法,代码无需实现任何接口。这两个属性的取值是相应 Bean 类中的初始化和 销毁方法,方法名任意,但是方法不能有参数。示例如下:
Spring 2.5 在保留以上两种方式的基础上,提供了对 JSR-250 的支持。JSR-250 规范定义了两个用 于指定声明周期方法的注解:@PostConstruct 和 @PreDestroy。这两个注解使用非常简单,只需分别将 他们标注于初始化之后执行的回调方法或者销毁之前执行的回调方法上。由于使用了注解,因此需要配置 相应的 Bean 后处理器,亦即在 XML 中增加如下一行:
比较上述三种指定生命周期回调方法的方式,第一种是不建议使用的,不但其用法不如后两种方式灵 活,而且无形中增加了代码与框架的耦合度。后面两种方式开发者可以根据使用习惯选择其中一种,但是 最好不要混合使用,以免增加维护的难度。 详解Spring 3.0基于Annotation的依赖注入实现(3)时间:2011-08-13 IBM 张建平使用 @Required 进行 Bean 的依赖检查 依赖检查的作用是,判断给定 Bean 的相应 Setter 方法是否都在实例化的时候被调用了。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |