有没有办法在 MessageListener 中注入(inject)服务?
@Autowired
@Qualifier("myServices")
MyServices myServices;
@Override
public void onMessage(final Message message, final byte[] pattern) {
myServices.call();
}
这种方式不注入(inject)服务。那是因为在@Configuration 中我们做了
@Bean
MessageListenerAdapter messageListener() {
return new MessageListenerAdapter( new RedisMessageListener() );
}
有什么想法吗?
谢谢
请您参考如下方法:
这应该有效:(如果委托(delegate)已经是 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();
}
}