NettyServerHandler注入其他类为null

news/2024/10/4 20:21:49 标签: netty

NettyServerHandler中注入其他类为空解决办法:

增加如下代码

  public static NettyServerHandler nettyServerHandler;
    @PostConstruct
    public void init() {
        nettyServerHandler = this;
    }

整个类代码如下:

@Component
public class NettyServerHandler extends ChannelInboundHandlerAdapter {

    @Autowired
    private RedisTemplate redisTemplate;
    @Autowired
    private GetTime getTime;

    public static NettyServerHandler nettyServerHandler;
    @PostConstruct
    public void init() {
        nettyServerHandler = this;
    }

    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception  {
        ByteBuf in = (ByteBuf)msg;
        int readableBytes = in.readableBytes();
        byte[] bytes =new byte[readableBytes];
        in.readBytes(bytes);

        if (bytes != null && bytes.length >= 3748) {
            if (    bytes[0]==-86&&
                    bytes[1] == -85 &&
                            bytes[2] == -84 &&
                            bytes[3745] == -70 &&
                            bytes[3746] == -69 &&
                            bytes[3747] == -68
            ) {
                String encode = Base64.getEncoder().encodeToString(bytes);
//                nettyServerHandler.redisTemplate.opsForValue().set("Current:Data",encode);
                nettyServerHandler.redisTemplate.opsForList().rightPush("Current:Data"+nettyServerHandler.getTime.DateDisplay() , encode);
            }
        }
    }

    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
        // 打印异常信息
        cause.printStackTrace();
        ctx.close();
    }
}

http://www.niftyadmin.cn/n/5690305.html

相关文章

当忘记手机密码时可以尝试方法:手机解锁软件的六大方法

您可能出于多种原因想要解锁手机。也许您正在出国旅行并想使用当地的 SIM 卡,或者您刚刚购买了二手手机并需要删除前任所有者的个人数据。您可能想知道如何免费获得可以解锁任何手机的软件。Android 用户可以使用指纹、面部识别或 PIN。您还可以通过快速连续单击电源…

Python技巧:如何处理未完成的函数

一、问题的提出 写代码的时候,我们有时候会给某些未完成的函数预留一个空位,等以后有时间再写具体内容。通常,大家会用 pass 或者 ... (省略号)来占位。这种方法虽然能让代码暂时不报错,但可能在调试的时候…

搞懂域名系统,域名,顶级域名及子域名的秘密!

什么是域名系统和域名? 在互联网的世界里,域名系统是不可或缺的一部分。它为每个网站或网络服务赋予了唯一的标识符,使得人们可以通过这些标识符来访问和浏览信息。 ICANN 互联网名称与数字地址分配机构(ICANN)是一个非营利组…

vSAN01:vSAN简介、安装、磁盘组、内部架构与调用关系

目录 传统的共享存储vSAN存储OSA的系统要求vSAN安装vSAN集群vSAN skyline healthvSAN与HA磁盘组混合磁盘架构全闪磁盘架构 vSAN对象vSAN内部架构 传统的共享存储 通过隔离的存储网络使得不同的ESXi主机访问独立的存储设备。需要前期投入较高的资金单独采购存储、网络可以单独规…

集合框架01:集合的概念、Collection体系、Collection接口

1.集合的概念 集合是对象的容器,定义了多个对象进行操作的常用方法。可实现数组的功能。 集合和数组的区别: 1.数组长度固定,集合长度不固定; 2.数组可以存储基本类型和引用类型,集合只能存储引用类型; …

深入理解Linux内核网络(一):内核接收数据包的过程

在应用层执行read调用后就能很方便地接收到来自网络的另一端发送过来的数据,其实在这一行代码下隐藏着非常多的内核组件细节工作。在本节中,将详细讲解数据包如何从内核到应用层,以intel igb网卡为例。 部分内容来源于 《深入理解Linux网络》…

算法日记-链表翻转

文章目录 场景:解法一:迭代步骤完整代码 解法二:递归步骤完整代码 重温力扣常规算法,记录算法的演变,今天介绍的是链表翻转 场景: 现在有一条单项链表,链表节点存在一个数据和指向下一个节点的…

【Matlab绘图】从Excel导入表格并进行三维绘图

前言 今天手头上拿到一份论文的xlsx数据,要求使用MATLAB绘制进行三维图标坐标绘制。那么我们来看看如何使用如下数据进行绘图。 如上数据所示,数据是一个30行25列的数据,数据的内容是论文某项模型模拟的结果,我们希望把横坐标x取…