Java Spring boot@ClientEndpoint can';t@Autowired我的服务

Java Spring boot@ClientEndpoint can';t@Autowired我的服务,java,spring-boot,spring-websocket,Java,Spring Boot,Spring Websocket,我尝试使用@Autowired在@ClientEndpoint中使用我的服务 但是有一个java.lang.NullPointerException 这是我的密码 P2PService.java 公共接口p2p服务{ void send(会话,字符串msg); } P2PServiceImpl.java @服务 公共类P2PServiceImpl实现P2PService{ @凌驾 公共无效发送(会话,字符串消息){ session.getAsyncRemote().sendText(msg);

我尝试使用@Autowired在@ClientEndpoint中使用我的服务

但是有一个java.lang.NullPointerException

这是我的密码

P2PService.java

公共接口p2p服务{
void send(会话,字符串msg);
}
P2PServiceImpl.java

@服务
公共类P2PServiceImpl实现P2PService{
@凌驾
公共无效发送(会话,字符串消息){
session.getAsyncRemote().sendText(msg);
}
}
首先我使用这个代码

@组件
@客户点
公共类p2p客户端{
非公开会议;
公共服务器(字符串url){
试一试{
WebSocketContainer=ContainerProvider.getWebSocketContainer();
URI=URI.create(url);
this.session=container.connectToServer(P2pClient.class,uri);
}捕获(例外e){
e、 printStackTrace();
}
}
@自动连线
专用p2p服务p2p服务;
@奥诺彭
公共开放(会议){
this.session=会话;
System.out.println(本文件);
System.out.println(p2p客户端p2p服务);
}
在找到参考后,我用这个

私有静态p2p服务p2p服务;
@自动连线
公共静态无效设置P2PService(P2PService P2PService){
P2pClient.p2PService=p2PService;
}
控制台输出为

com.p2ptest.P2pClient@71e7a66b
null
我只是用这个代码来启动这个项目

P2pClient p2pClient = new P2pClient();
p2pClient.connectServer(url);
例外情况

java.lang.NullPointerException
    at com.p2ptest.P2pClient.onOpen(P2pClient.java:62)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.tomcat.websocket.pojo.PojoEndpointBase.doOnOpen(PojoEndpointBase.java:65)
    at org.apache.tomcat.websocket.pojo.PojoEndpointClient.onOpen(PojoEndpointClient.java:45)
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServerRecursive(WsWebSocketContainer.java:509)
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:197)
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:154)
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:171)
    at com.p2ptest.P2pClient.connectServer(P2pClient.java:38)
    at com.Hello.main(Hello.java:22)

我不知道我能做什么

当包含
@Autowired
注释的类使用
new
实例化时,自动连接无法工作,即
P2pClient P2pClient=new P2pClient();
是问题所在。有必要从应用程序上下文中获取
p2p客户端。这个问题已经有了答案: