在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;