一.问题场景:springboot整合netty时,netty的处理类无法实例化service
二.问题解读:经过查阅资料,netty的bean对象默认不交由spring管理
三.解决方案:
@Component//1.添加注解
public class NettyServerHandler extends ChannelInboundHandlerAdapter {
    private static Log log = LogFactory.getLog(NettyServerHandler.class);

    @Autowired
    private RedisUtils redisUtils;

    //2.声明本类
    private static NettyServerHandler nettyServerHandler;
    //3.声明构造方案
    public NettyServerHandler(){}

    //4.添加注解,在项目初始化时执行这个方法
    @PostConstruct
    public void init() {
        nettyServerHandler = this;
        nettyServerHandler.redisUtils = this.redisUtils;
    }

=====================================
经过以上4步骤的处理

for (Map dto : variants){
    String key = dto.get("key").toString();                   
     nettyServerHandler.redisUtils.hmset(dto.get("key").toString(),
dto, 100000);
 }
//nettyServerHandler.redisUtils.hmset()  通过这种方式调用redisUtils就可以了
    
View Code

相关文章: