WEB开发网
开发学院软件开发Java 详解 Spring 3.0 基于 Annotation 的依赖注入实现... 阅读

详解 Spring 3.0 基于 Annotation 的依赖注入实现

 2010-05-10 00:00:00 来源:WEB开发网   
核心提示: 当容器中存在多个 Bean 的类型与需要注入的相同时,注入将不能执行,详解 Spring 3.0 基于 Annotation 的依赖注入实现(8),我们可以给 @Autowired 增加一个候选值,做法是在 @Autowired 后面增加一个 @Qualifier 标注,那么优先使用 <q

当容器中存在多个 Bean 的类型与需要注入的相同时,注入将不能执行,我们可以给 @Autowired 增加一个候选值,做法是在 @Autowired 后面增加一个 @Qualifier 标注,提供一个 String 类型的值作为候选的 Bean 的名字。举例如下:

 @Autowired(required=false) 
 @Qualifier("ppp") 
 public void setPerson(person p){} 

@Qualifier 甚至可以作用于方法的参数 ( 对于方法只有一个参数的情况,我们可以将 @Qualifer 标注放置在方法声明上面,但是推荐放置在参数前面 ),举例如下:

 @Autowired(required=false) 
 public void sayHello(@Qualifier("ppp")Person p,String name){} 

我们可以在配置文件中指定某个 Bean 的 qualifier 名字,方法如下:

 <bean id="person" class="footmark.spring.Person"> 
  <qualifier value="ppp"/> 
 </bean> 

如果没有明确指定 Bean 的 qualifier 名字,那么默认名字就是 Bean 的名字。通常,qualifier 应该是有业务含义的,例如 "domain","persistent" 等,而不应该是类似 "person" 方式。

我们还可以将 @Qualifier 标注在集合类型上,那么所有 qualifier 名字与指定值相同的 Bean 都将被注入进来。

最后,配置文件中需要指定每一个自定义注解的属性值。我们可以使用 <meta> 标签来代替 <qualifier/> 标签,如果 <meta> 标签和 <qualifier/> 标签同时出现,那么优先使用 <qualifier> 标签。如果没有 <qualifier> 标签,那么会用 <meta> 提供的键值对来封装 <qualifier> 标签。示例如下:

上一页  3 4 5 6 7 8 9 10  下一页

Tags:详解 Spring 基于

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接