没有可用的'org.context.Databasetransactionlistener'类型的合格Bean:预计至少有1个有资格成为自动装配候选者的Bean

时间:2018-06-28 07:35:35

标签: java spring spring-boot

我尝试使用此代码:

if(searchForm.ShowDialog() == DialogResult.OK)
{
    //The user closed the dialog by double click on row
}

但是当我部署代码时,出现异常: 没有@SpringBootApplication @ComponentScan("org.package.context") public class ContextServer extends SpringBootServletInitializer { private static Class<ContextServer> applicationClass = ContextServer.class; @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { //// return application.sources(applicationClass); } @Bean public SimpleMessageListenerContainer databaseTransactionContainer(ConnectionFactory cf, Databasetransactionlistener listener) { SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(cf); container.setQueueNames(QUEUE_DATABASE_TRANSACTION); container.setExclusive(true); container.setConcurrentConsumers(1); container.setAcknowledgeMode(AcknowledgeMode.MANUAL); container.setMessageListener(new MessageListenerAdapter(listener, "databasetransaction")); container.setMessageConverter(new SerializerMessageConverter()); return container; } } @Component class Databasetransactionlistener { public TransactionsBean databasetransaction(TransactionsBean ro) { TransactionsBean obj = new TransactionsBean(); System.out.println("!!!! Performing TransactionsBean processing !!!!"); obj.setTransaction_id(" ??? some_id: " + ro.getMerchant_id()); return obj; } }

类型的合格bean

完整日志:https://pastebin.com/L99iV9i9

您能建议我如何解决此问题吗?可能我缺少一些配置?

1 个答案:

答案 0 :(得分:1)

您的bean Databasetransactionlistener尚未注册。 扫描从上课开始。

SimpleMessageListenerContainer添加DependsOn,以确保您的课程已首先注册。

BTW @SpringBootApplication已经@ComponentScan