如果我们有这个:
<bean id="txManager" class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory" ref="pooledConnectionFactory"/>
</bean>
<bean id="config" class="org.apache.camel.component.jms.JmsConfiguration">
<property name="connectionFactory" ref="nonPooledConnectionFactory"/>
</bean>
<bean id="myComponent" class="org.apache.camel.component.jms.JmsComponent">
<property name="configuration" ref="config"/> // Which one is used?
<property name="transactionManager" ref="txManager"/> // Which one is used?
<property name="cacheLevelName" value="CACHE_CONSUMER" />
</bean>
哪个connectionfactory将用于使用“myComponent”的camelroute? 它的transactionmanager引用了一个池化的connnectionfactory,但是它的配置引用了一个非池化的connectionfactory。
我们可以在很多层面上设置connectionFactory:txManager,JmsComponent,Configuration等。如果给定的规则不同,想知道哪个规则用于消歧?
答案 0 :(得分:0)
Spring将会发现它发现的任何内容......如果存在歧义,那么如果不将“主要”区别添加到一个实例,应用程序上下文就不会启动。