我正在尝试创建一个websocket拦截器,它使用来自Spring云流的MessageChannel发送消息。我正面临一个依赖循环
ActiveX
我的问题是我需要将一个MessageChannel注入websocket拦截器
如果我使用@Autowire
,我收到以下错误Button1
答案 0 :(得分:1)
行。谢谢!不,我看到了问题。
查找
MyChannelInterceptor
取决于BinderService
自动创建的频道。 MessageConverter
。 AbstractMessageBrokerConfiguration
提供了一个CompositeMessageConverter brokerMessageConverter
@EnableWebSocketMessageBroker
WebSocketConfig
AbstractWebSocketMessageBrokerConfigurer
MyChannelInterceptor
。不确定如何将其作为开箱即用的功能进行修复,但这是一种解决方法:
public class MyChannelInterceptor extends ChannelInterceptorAdapter {
@Autowired
private MessageChannel output;
@Configuration
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Bean
public MyChannelInterceptor myChannelInterceptor() {
return new MyChannelInterceptor();
}
...
@Override
public void configureClientInboundChannel(ChannelRegistration registration) {
registration.setInterceptors(myChannelInterceptor());
}