Autowired websockets SimpMessagingTemplate在所有资源上产生空值



这真是个神奇的东西,它只在linuxserver笔记本电脑上崩溃,在mac上完美运行(自动装配)。

@EnableWebSocketMessageBroker
@Configuration
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer {
@Autowired
private A a;
@Autowired
private B b;
@Autowired
private C c;
@Autowired
private D d;
....
}
如果这些类中的一个(例如C)有 ,则

@Autowired
private SimpMessagingTemplate simpMessagingTemplate;

则C在WebSocketConfiguration上变为空,所有以下类也变为空(当前示例中的D类也为空)。所以顺序很重要)

有趣的是,在Mac笔记本电脑上它工作得很好,但在服务器和我的linux笔记本电脑上我有问题。

也在A,B,C,D类有相互引用(循环依赖自动装配),但据我所知,Spring必须很容易解决它。

如果我从SimpMessagingTemplate中删除@Autowire,所有类都可以完美加载并工作。

这里可能有什么问题?

经过3天的研究找到了解决方案。

我将SimpMessagingTemplate移到配置类中,并使用PostConstruct将其设置为其他bean。

看起来在bean初始化中存在一些顺序

相关内容

  • 没有找到相关文章

最新更新