我正在创建一个使用JMS而不是ActiveMq的Spring-Boot项目。
我设置了以下属性:
spring.activemq.broker-URL = TCP://127.0.0.1:35000
spring.activemq.pooled =真
它工作正常,但我无法控制连接池的属性。例如,我想设置连接池中的最大连接数。
有没有办法设置呢?
如果我试图在我的Spring上下文xml文件中自己配置ActiveMq,那么Spring-boot就会抱怨自动装配2 ConnectionFactory
出现问题!
有没有办法告诉Spring-Boot不要自动配置任何ActiveMq连接工厂?(由ActiveMQConnectionFactoryConfiguration
库中的spring-boot-autoconfigure
完成)
答案 0 :(得分:2)
您需要做的就是提供类型为javax.jms.ConnectionFactory
的bean,并指示Spring Boot不提供默认值。
代码如下:
@Configuration
class YourActiveMQConnectionFactoryConfiguration {
@Bean
public ConnectionFactory jmsConnectionFactory() {
return createFactory(); //do whatever you need to here
}
}
在主应用程序配置类中,将exclude属性添加到@EnableAutoConfiguration
。
@Configuration
@EnableAutoConfiguration(exclude=ActiveMQConnectionFactoryConfiguration.class)
//the rest of your annotations
public class AppConfig {
//declare whatever other beans you need
}