Преглед изворни кода

refactor(environment-hj212-service): 重构 Netty 服务端逻辑

- 将 ServerHandler 的创建和初始化逻辑移至 NtServer 类中
- 使用构造函数注入 ServerHandler,而不是在 @PostConstruct 方法中初始化
-简化了 ServerHandler 类的结构,移除了不必要的初始化方法
林仔 пре 1 година
родитељ
комит
2b890f7f62

+ 10 - 1
environment-hj212-service/src/main/java/com/zksy/environmentHJ212/config/NtServer.java

@@ -7,6 +7,7 @@ import io.netty.channel.socket.ServerSocketChannel;
 import io.netty.channel.socket.SocketChannel;
 import io.netty.channel.socket.nio.NioServerSocketChannel;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
@@ -26,6 +27,14 @@ public class NtServer {
 
     private EventLoopGroup worker;
 
+    // 注入 ServerHandler
+    private final ServerHandler serverHandler;
+
+    @Autowired
+    public NtServer(ServerHandler serverHandler) {
+        this.serverHandler = serverHandler;
+    }
+
     @PostConstruct()
     private void startServer() {
         log.info("进入程序....");
@@ -52,7 +61,7 @@ public class NtServer {
                             protected void initChannel(SocketChannel sc) throws Exception {
                                 // 增加任务处理
                                 ChannelPipeline p = sc.pipeline();
-                                p.addLast(new ServerHandler());
+                                p.addLast(serverHandler);
                             }
                         });
 

+ 4 - 8
environment-hj212-service/src/main/java/com/zksy/environmentHJ212/config/ServerHandler.java

@@ -14,18 +14,14 @@ import java.time.LocalDateTime;
 @Slf4j
 @Component
 public class ServerHandler extends ChannelInboundHandlerAdapter {
-    private ServerHandler serverHandler;
+    private final MonitorDatasynch monitorDatasynch;
 
     @Autowired
-    private MonitorDatasynch monitorDatasynch;
-
-    @PostConstruct
-    public void init() {
-        log.info("init()方法");
-        serverHandler = this;
-        serverHandler.monitorDatasynch = this.monitorDatasynch;
+    public ServerHandler(MonitorDatasynch monitorDatasynch) {
+        this.monitorDatasynch = monitorDatasynch;
     }
 
+
     /**
      * 客户端与服务端创建连接的时候调用
      */