详解 Spring 3.0 基于 Annotation 的依赖注入实现
2010-05-10 00:00:00 来源:WEB开发网<bean> 标签提供了 dependency-check 属性用于进行依赖检查。该属性的取值包括以下几种:
none -- 默认不执行依赖检查。可以在 <beans> 标签上使用 default-dependency-check 属性改变默认值。
simple -- 对原始基本类型和集合类型进行检查。
objects -- 对复杂类型进行检查(除了 simple 所检查类型之外的其他类型)。
all -- 对所有类型进行检查。
旧版本使用 dependency-check 在配置文件中设置,缺点是粒度较粗。使用 Spring2.0 提供的 @Required 注解,提供了更细粒度的控制。@Required 注解只能标注在 Setter 方法之上。因为依赖注入的本质是检查 Setter 方法是否被调用了,而不是真的去检查属性是否赋值了以及赋了什么样的值。如果将该注解标注在非 setXxxx() 类型的方法则被忽略。
为了让 Spring 能够处理该注解,需要激活相应的 Bean 后处理器。要激活该后处理器,只需在 XML 中增加如下一行即可。
<context:annotation-config/>
当某个被标注了 @Required 的 Setter 方法没有被调用,则 Spring 在解析的时候会抛出异常,以提醒开发者对相应属性进行设置。
使用 @Resource、@Autowired 和 @Qualifier 指定 Bean 的自动装配策略
自动装配是指,Spring 在装配 Bean 的时候,根据指定的自动装配规则,将某个 Bean 所需要引用类型的 Bean 注入进来。<bean> 元素提供了一个指定自动装配类型的 autowire 属性,该属性有如下选项:
no -- 显式指定不使用自动装配。
byName -- 如果存在一个和当前属性名字一致的 Bean,则使用该 Bean 进行注入。如果名称匹配但是类型不匹配,则抛出异常。如果没有匹配的类型,则什么也不做。
更多精彩
赞助商链接