繁体   English   中英

Spring Boot自动配置AutoConfigureAfter

[英]Spring boot autoconfiguration AutoConfigureAfter

我正在尝试创建一个后备ConnectionFactory,以防JndiConnectionFactoryAutoConfiguration没有为我创建一个。

这是班级的样子

@Configuration
@AutoConfigureAfter(JndiConnectionFactoryAutoConfiguration.class)
@ConditionalOnMissingBean(ConnectionFactory.class)
@ConditionalOnClass(ConnectionFactory.class)
public class JmsFallbackAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean
    ConnectionFactory fallbackConfiguration() {
        ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        System.out.println("Created: " + activeMQConnectionFactory);
        return activeMQConnectionFactory;
    }

}

我期望的是启动弹簧启动,正在进行一些自动配置,我们进入JndiConnectionFactoryAutoConfiguration,它注意到我设置了spring.jms.jndi-name并创建了ConnectionFactory bean。

然后,在某个时候,我希望它到达JmsFallbackAutoConfiguration时,它应该注意到我们已经有一个ConnectionFactory(由JndiConnectionFactoryAutoConfiguration配置),然后继续。

但这不是发生的事情,JmsFallbackAutoConfiguration总是执行,我不知道自己缺少什么。

示例项目在这里https://github.com/apixandru/case-study/tree/master/spring-boot-weblogic-jms/spring-boot-weblogic-jms-war

JmsFallbackAutoConfiguration与使用@SpringBootApplication注释的主应用程序类在同一软件包中。 这意味着将通过组件扫描找到它。 您需要将其移至单独的程序包中,以使其与主应用程序类或其子程序包不在同一程序包中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM