我使用的是Java代码,没有使用xml来配置spring。我怀疑我需要对它进行子类化,但是我如何才能做到这一点,并让spring使用我的版本呢?我尝试了以下方法:
@Bean
public DefaultMessageListenerContainer messageListenerContainer() {
DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer() {
@Override
protected TaskExecutor createDefaultTaskExecutor() {
String beanName = this.getBeanName();
String threadNamePrefix = "MyThreadNamePrefix";
return new SimpleAsyncTaskExecutor(threadNamePrefix);
}
};
messageListenerContainer.setConcurrency();
return messageListenerContainer;
}
在运行时,如果我这样做,我会得到这个错误:
Error creating bean with name 'messageListenerContainer' defined in class path resource [com/hexagon/apollo/tasks/TAplTaskConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'connectionFactory' is required
我怎样才能做到这一点,或者有更好的方法吗?
1条答案
按热度按时间htzpubme1#
需要属性“connectionFactory”
错误非常明显,您定义容器bean时没有设置所需的
connectionFactory
属性。它与线程命名无关。
而且,不需要对它进行子类化;只需注入TE: