在JmsComponent,JmsTransactionManager,JmsConfiguration等上使用不同的connectionFactories会产生什么影响

时间:2016-04-12 08:30:20

标签: spring apache-camel activemq

如果我们有这个:

<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等。如果给定的规则不同,想知道哪个规则用于消歧?

1 个答案:

答案 0 :(得分:0)

Spring将会发现它发现的任何内容......如果存在歧义,那么如果不将“主要”区别添加到一个实例,应用程序上下文就不会启动。