Java Spring boot:如何配置JMS池连接数
我正在使用SpringBoot创建一个项目,该项目在ActiveMq上使用JMS 我设置了以下属性: spring.activemq.broker-url=tcp://127.0.0.1:35000 spring.activemq.pooled=true 它工作正常,但我无法控制连接池的属性。例如,我想设置连接池中的最大连接数 有什么方法可以设置吗? 如果我试图在Spring上下文xml文件中自己配置ActiveMq,Spring boot会抱怨Autowiring 2Java Spring boot:如何配置JMS池连接数,java,spring,spring-boot,spring-jms,Java,Spring,Spring Boot,Spring Jms,我正在使用SpringBoot创建一个项目,该项目在ActiveMq上使用JMS 我设置了以下属性: spring.activemq.broker-url=tcp://127.0.0.1:35000 spring.activemq.pooled=true 它工作正常,但我无法控制连接池的属性。例如,我想设置连接池中的最大连接数 有什么方法可以设置吗? 如果我试图在Spring上下文xml文件中自己配置ActiveMq,Spring boot会抱怨Autowiring 2ConnectionFac
ConnectionFactory
有问题
有没有办法告诉Spring Boot不要自动配置任何ActiveMq连接工厂?(由
Spring Boot自动配置库中的ActiveMQConnectionFactoryConfiguration
完成)您所需要做的就是提供一个类型为javax.jms.ConnectionFactory
的bean,并指示Spring Boot不要提供默认bean
代码如下所示:
@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
}
不必排除ActiveMQConnectionFactoryConfiguration,因为它是用@ConditionalOnMissingBean(ConnectionFactory.class)@AndyWilkinson注释的,谢谢您的评论,但是ActiveMQConnectionFactoryConfiguration
不是用@ConditionalOnMissingBean(ConnectionFactory.class)注释的
在1.1.6.0版中。另一方面,ActiveMQAutoConfiguration
。这可能是一个bug吗?这就是我只在master中检查代码的结果。是的,我认为这是一个错误。我已经打开了。我之前太仓促了,现在我坚持我的说法,忽略ActiveMQConnectionFactoryConfiguration应该是不必要的,因为它不是一个自动配置类。相反,它是由ActiveMQAutoConfiguration导入的,正如您所观察到的,ActiveMQAutoConfiguration是用@ConditionalOnMissingBean(ConnectionFactory.class)注释的。我已经添加了两个测试()来验证在Java中配置所有内容时的行为。@AndyWilkinson好的,我来检查一下!