spring-boot配置非暴露属性

时间:2014-07-28 15:31:49

标签: spring-boot

我使用spring-boot来配置jms和activemq连接。由于activemq的缺陷,我需要在PooledConnectionFactory上设置空闲超时。 spring-boot不会暴露此配置。我该如何设置?

我有一个@Bean来创建一个messageListenerContainer,它将connectionFactory作为参数。我可以检查工厂并在这里进行配置,但这似乎不是正确的方法。

1 个答案:

答案 0 :(得分:0)

在我看来,向PooledConnectionFactory向下倾斜并致电setIdleTimeout是一种非常合理的做法。

如果您不想在创建消息侦听器容器时执行此操作,则可以在使用ConnectionFactory的同时声明自己的ActiveMQProperties bean。像这样:

@Configuration
@EnableConfigurationProperties(ActiveMQProperties.class)
class CustomActiveMQConnectionFactoryConfiguration {

    @Autowired
    private ActiveMQProperties properties;

    @Bean
    public ConnectionFactory jmsConnectionFactory() {
        ConnectionFactory connectionFactory = this.properties.createConnectionFactory();
        if (connectionFactory instanceof PooledConnectionFactory) {
            ((PooledConnectionFactory) connectionFactory).setIdleTimeout(1000);
        }
        return connectionFactory;
    }
}