Spring注入Bean失败Null/Netty注入Bean失败/NettyHandle注入Bean失败

作者在SpringBoot和Netty整合项目中,遇到NettyHandle里Service层无法注入的问题。分析了常见的Bean注入失败原因,如未被加载、未正确注入对象、依赖注入存在new关键字等,指出Netty初始化服务用new关键字会使嵌套Bean无法加载注入,并给出解决办法。

之前也遇到过bean注入失败但是好像并没有当回事,很快捷锁定了原因  但是最近接到任务 要求用一个Netty接收某设备发动来的数据并解析,个人使用的SpringBoot和Netty整合 在NettyHandle中注入Service层是一直无法注入,百思不得解 

  1. 描述一下问题:
    1. 正常注入bean都是可以注入,无法注入常见的无非3种问题
      1. 没有被加载(没有扫描到),但是在springboot项目中这种情况肯定基本不会存在,(只要是在SpringBoot启动类的子包下边的类Bean注解都会被扫描到)
      2. 没有正确注入对象
        1. 这种情况一般出现在为静态对象注入的时候出现
          1. 解决方式也很简单使用方法将属性set到属性中即可 上代码
          2. 
            private static LighterServer lighterServer;
            @Autowired
            private void setLighterServer(LighterServer lighterServer) {
             NettyApplication.lighterServer = lighterServer;
            }


             

          3. 就是依赖注入存在new 关键字new对象的问题

            1. 这个标题加粗 也是被忽略的重点 一直知道这个但是也是初次使用Netty把这点忽略了

              1. 举个例子在使用Netty的时候 从初始化服务的时候会经常使用New 关键字在创建对象 导致后续的嵌套Bean无法正常加载注入 所以一直为null 下边是部分容易忽略的截图

              2. ok 知道原因 那就来解决一下

              3. 首先我们要知道注入某个属性为null的类 是如何被创建出来的(New 或者 注入)
                我这里之前是New出来的 上边两个图那样

              4. 然后修改一下 注意红框圈出的位置


              5.  

        2. OK 结束,本文主要是对Netty来进行说明的  因为网上很多Netty例子在初始化服务时 不管是注入初始化器还是注入Handel都是用的New 关键字 模仿的写的小伙伴很容易忽略这点 

    2. 2019-07-27 补充: 使用bean时候要在bean加载完成后使用  springboot项目要在执行完rum后执行 以下是同一对象 打印出来的结果

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值