spring中@Autowired和@Qualifier标注的使用

在springMVC 中,web层对bean的注入是通过自动注入的方式,但是有的时候在web.xml中有两个bean的名称相似的时候,可能出现注入名重复的情况,Spring 允许我们通过 @Qualifier 注释指定注入 Bean 的名称,这样歧义就消除了,可以通过下面的方法解决异常。

  @Qualifier("XXX") 中的 XX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。

   applicationContext.xml中:

<bean id="catalogDao"

class="com.taobao.riskm.dao.ibatis.CatalogDaoImplExtend">

</bean>

<!--类别dao 6位一节 2012-05-17-->

<bean id="6catalogDao"

class="com.taobao.freeproj.dao.ibatis.CatalogDaoImplWrapper">

<property name="leveledLength">

<value>6</value>

</property>

</bean>

在web层的controller中:

@Autowired

@Qualifier("catalogDao")

private CatalogDao catalogDao;

猜你喜欢

转载自cooldream666.iteye.com/blog/1675830