Java Spring boot:如何配置JMS池连接数

Java 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

我正在使用SpringBoot创建一个项目,该项目在ActiveMq上使用JMS

我设置了以下属性:

spring.activemq.broker-url=tcp://127.0.0.1:35000

spring.activemq.pooled=true

它工作正常,但我无法控制连接池的属性。例如,我想设置连接池中的最大连接数

有什么方法可以设置吗?

如果我试图在Spring上下文xml文件中自己配置ActiveMq,Spring boot会抱怨Autowiring 2
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好的,我来检查一下!