我正在尝试创建一个后备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总是执行,我不知道自己缺少什么。
JmsFallbackAutoConfiguration
与使用注释的主应用程序类在同一包中@SpringBootApplication
。这意味着将通过组件扫描找到它。您需要将其移动到单独的程序包中,以使其与主应用程序类或其子程序包不在同一程序包中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句