【问题标题】:Spring-boot: How to configure JMS pool number of connectionsSpring-boot:如何配置 JMS 池的连接数
【发布时间】:2014-11-16 20:47:54
【问题描述】:

我正在使用 Spring-Boot 创建一个使用 JMS over ActiveMq 的项目。

我设置了以下属性:

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-autoconfigure 库中的 ActiveMQConnectionFactoryConfiguration 完成)

【问题讨论】:

    标签: java spring spring-boot spring-jms


    【解决方案1】:

    您需要做的就是提供一个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
    }
    

    【讨论】:

    • 不需要排除 ActiveMQConnectionFactoryConfiguration,因为它是用@ConditionalOnMissingBean(ConnectionFactory.class) 注释的
    • @AndyWilkinson 感谢您的评论,但在 1.1.6.RELEASE 版本中,ActiveMQConnectionFactoryConfiguration 未使用 @ConditionalOnMissingBean(ConnectionFactory.class) 进行注释。另一方面,ActiveMQAutoConfiguration 是。这可能是一个错误吗?
    • 这就是我只检查master中的代码所得到的。是的,我认为这是一个错误。我打开了github.com/spring-projects/spring-boot/issues/1599
    • 我之前太仓促了,现在我坚持我的观点,即不需要忽略 ActiveMQConnectionFactoryConfiguration,因为它不是自动配置类。相反,它是由 ActiveMQAutoConfiguration 导入的,正如您所观察到的,它 用 @ConditionalOnMissingBean(ConnectionFactory.class) 注释的。我添加了几个测试 (github.com/spring-projects/spring-boot/commit/…) 来验证在 Java 中配置所有内容时的行为。
    • @AndyWilkinson 好的,我去看看!
    猜你喜欢
    • 2014-05-29
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    • 2017-06-09
    相关资源
    最近更新 更多