类加上@Compent注解就被spring托管了,可是为什么注入service会失败呢?
启动过程:
页面:
控制台报错:
类加上@Compent注解就被spring托管了,可是为什么注入service会失败呢?
启动过程:
页面:
控制台报错:
楼上的回答未免太过复杂,搞清楚为什么不能注入就能很容易解决问题了
/**
* WebSocket 配置
*
* @author Angus Liu
* @data 2018/9/13
*/
@Configuration
public class WebSocketConfig {
/**
* ServerEndpointExporter 用于扫描和注册所有携带 ServerEndPoint 注解的实例,
* 若部署到外部容器 则无需提供此类。
*
* @return
*/
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
/**
* 因 SpringBoot WebSocket 对每个客户端连接都会创建一个 WebSocketServer(@ServerEndpoint 注解对应的) 对象,Bean 注入操作会被直接略过,因而手动注入一个全局变量
*
* @param messageService
*/
@Autowired
public void setMessageService(MessageService messageService) {
WebSocketServer.messageService = messageService;
}
}
/**
* WebSocket 聊天服务端
*
* @author Angus Liu
* @date 2018/09/13
*/
@Component
@ServerEndpoint(value = "/web-socket-server/{account}")
public class WebSocketServer {
// 待注入对象声明为全局变量
public static MessageService messageService;
// 注入代码也可以直接写在这里
...
}
4 回答1.2k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
1 回答976 阅读✓ 已解决
2 回答1.7k 阅读
1 回答730 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答1.3k 阅读
每次回答自己提出的问题的基本都是我了,不过也好,说明我解决了。
MyWebSocket类中注意下面三个地方