自动装配的 websockets SimpMessagingTemplate 在所有资源上生成 null

Autowired websockets SimpMessagingTemplate produced null on all resources

神奇之处在于它仅在 linux\server\laptop mac 上崩溃,在 mac 上完美运行(自动装配)。我有

@EnableWebSocketMessageBroker
@Configuration
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer {

@Autowired
private A a;

@Autowired
private B b;

@Autowired
private C c;

@Autowired
private D d;

....

}

如果这些 class 中的一个(例如 C)有

@Autowired
private SimpMessagingTemplate simpMessagingTemplate;

然后 C 在 WebSocketConfiguration 上变为空,所有后续 classes 也变为空(​​在当前示例中也是 D class。所以这里的顺序很重要)

有趣的是,它在 Mac 笔记本电脑上运行完美,但在服务器和我的 linux 笔记本电脑上我遇到了麻烦。

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

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

这里可能有什么问题?

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

我已将 SimpMessagingTemplate 移至配置 class 并使用 PostConstruct 将其设置为其他 bean。

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