问题遇到的现象和发生背景
同一个类中,@GetMapping注解的方法,可以获取自动注入的对象,而@OnOpen注解的方法,获取同一个对象显示null
问题相关代码,请勿粘贴截图
@ServerEndpoint("/ws/{token}")
@RestController
public class WebSocketController {
……
@Autowired
@Qualifier("websocketRespository")
private WebsocketRespository websocketRespository;
/**
* spring注入测试
* @return
*/
@GetMapping("/test")
public void index(){
websocketRespository.put(session.getId(),new Session());
}
/**
* websocket注入测试
* @param session 与某个客户端的会话
* @param token 客户端的唯一标识
*/
@OnOpen
public void onOpen(Session session, @PathParam("token") String token){
//缓存连接到当前服务器的客户端
websocketRespository.put(session.getId(),
new ClientWebsocket(token,new Client(session.getId(),token,session)
)
);
……
}
运行结果及报错内容
我想要达到的结果
为什么会注入失败,如何解决?