我有这个mapper-config.xml。有游戏类的DAO和BLM:
<bean id="DAOGame" class="it.certimeter.nagima.dao.game.DAOGame">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="BLMGameTarget" class="it.certimeter.nagima.blm.game.BLMGame">
<property name="daoGame" ref="DAOGame" />
</bean>
交易的bean:
<bean class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" id="BLMGame">
<property name="proxyInterfaces">
<list>
<value>it.certimeter.nagima.blm.game.IBLMGame</value>
</list>
</property>
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="target">
<ref bean="BLMGameTarget"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="saveGame">PROPAGATION_REQUIRED, -it.fondsai.jeffs.core.exception.service.appl.JeffsServiceApplException</prop>
</props>
</property>
<!-- <property name="anonymousAccess" value="true"/> -->
</bean>
但我有这个错误: 嵌套异常是org.springframework.beans.factory.NoUniqueBeanDefinitionException:没有定义类型[it.certimeter.nagima.blm.game.IBLMGame]的限定bean:预期的单个匹配bean但找到2:BLMGameTarget,BLMGame
我错在哪里?
答案 0 :(得分:0)
是的,Ben评论的问题。我前几天就碰到了这个。
这个问题带来了糟糕的代码味道,但是如果你想要一个解决方法,我建议如下:
转到@Autowire您的IBLMGame实例的位置。除了@Autowire注释之外,您还可以提供@Qualifier注释并给出一个String值,该值表示您实际要连接的bean名称。
因此,对于您的情况,它看起来像这样:
@Autowired
@Qualifier("BLMGameTarget") // you can substitute in "BLMGame" if that's the bean you want
IBLMGame iblmGame;