无论如何在MessageListener中注入服务?
@Autowired
@Qualifier("myServices")
MyServices myServices;
@Override
public void onMessage(final Message message, final byte[] pattern) {
myServices.call();
}
这种方式不会注入服务。那是因为@Configuration中我们做了
@Bean
MessageListenerAdapter messageListener() {
return new MessageListenerAdapter( new RedisMessageListener() );
}
有什么想法吗?
由于
答案 0 :(得分:0)
这应该有效:(如果委托已经是MessageListener,则不需要MessageListenerAdapter):
@Component
public class MyListener implements MessageListener {
@Autowired
@Qualifier("myServices")
MyServices myServices;
@Override
public void onMessage(final Message message, final byte[] pattern) {
myServices.call();
}
}
答案 1 :(得分:0)
如果您不想创建独立课程,您也可以这样做:
@Bean
MessageListenerAdapter messageListener(@Qualifier("myServices") MyServices myServices) {
//use myServices instance somehow
return new MessageListenerAdapter( new RedisMessageListener() );
}