问题描述
使用 Spring Boot + Netty 新建项目时 Handler 中的 @Autowired, @Value 注解的始终为空值
解决方法
@Component // 1. 添加 @Component 注解public class TestHandler extends ChannelInboundHandlerAdapter { private static TestHandler testHandler; // 2. 定义本类的静态对象 @Autowired TestService testService; @PostConstruct // 3. 添加 @PostConstruct 注解的方法 public void init(){ testHandler = this; } @Override public void channelRead(ChannelHandlerContext ctx, Object msg) { ByteBuf buf = (ByteBuf) msg; byte[] bytes = new byte[buf.readableBytes()]; buf.readBytes(bytes); testHandler.testService.handlerMessage(bytes); // 4. 使用 }}
参考: