我正在尝试学习websocket并遵循指南。它建议以:
开头@Configuration
@EnableWebSocketMessageBroker
public class MyConfiguration implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/portfolio").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableStompBrokerRelay("/queue/", "/topic/");
registry.setApplicationDestinationPrefixes("/app/");
}
}
我真的不明白注释@Configuration
的含义。
是我的理解,Bean容器发现信息,但如果只使用@override在这个类中,那么在这种情况下它做什么?
@Configuration
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Configuration.html
指示一个类声明一个或多个@Bean方法,并且可以由Spring容器处理以在运行时为这些bean生成bean定义和服务请求…
@EnableWebSocketMessageBroker
这个注释添加到一个@ configuration类使broker-backed使用更高级别的消息传递消息了WebSocket订阅"协议…
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/socket/config/annotation/EnableWebSocketMessageBroker.html
这意味着没有@Configuration, @EnableWebSocketMessageBroker将被spring容器忽略。所以WebSocket不会被启用。