• SpringBoot项目中@Autowired注解注入组件为空Null,@Value注解注入值为空Null 的解决办法


    问题概述

    在Spring项目开发组件中,通过@Autowired注解注入组件为空Null,@Value注解注入值为空Null,

    如下图:

    解决办法

     如果你遇到了这个问题,如果是中、高级开发工程师,先自我反省,自我检讨一下吧!

    这个是入门的(基础的不能再基础了),这个知识就不在这儿展开了,

    如果遇到了这个问题,从以下步骤进行排查:

    1、首先查看注解,

    查看当前组件类上是否存在注解:@Component、@Service 目的是使Spring能识别到并交由Spring进行管理,

    关于@Component、@Service、@Repository、@Controller注解:

    @Component 是Spring组件的基础注解,被Spring管理的组件或Bean;
    @Controller 用于控制层;
    @Service 用于业务层,处理系统中的各种业务逻辑;
    @Repository 用于持久层,数据库访问层,用于处理持久化数据库之间的操作;

    相同点:
    @Component是@Controller、@Service、@Repository的基带注解(必须的);
    Spring框架自动扫描的注解也是检测是否有@Component注解标记,才能被Spring识别;

    2、手动初始化注入

    如果组件类上已经存在@Component或者@Service注解,还是注入为Null,则尝试通过@PostConstruct注解手动注入,

    示例代码如下:

    1. private static WeChatSenderDebtImpl weChatSenderDebt;
    2. // 注意包不要引用错了>import javax.annotation.PostConstruct;
    3. @PostConstruct
    4. public void initConstruct() {
    5. weChatSenderDebt = this;
    6. weChatSenderDebt.accessKeyId = this.accessKeyId;
    7. weChatSenderDebt.accessKeySecret = this.accessKeySecret;
    8. weChatSenderDebt.redisTemplate = this.redisTemplate;
    9. }

    3、终极办法

    代码走查,

    博主遇到这个问题,是因为在对代码进行抽取封装,应用抽象工厂模式遇到的,

    最终的排查结果是,抽取封装的组件是完全没有问题的,但是在调用端出了问题,同事在调用该工厂方法时,通过“new” 来调用的,问题就出在这儿!!!

    最终的解决办法就是,在整个抽取封装链,调用链全部替换成

    “ @Autowired

    如下图:


    好了,关于 SpringBoot项目中@Autowired注解注入组件为空Null,@Value注解注入值为空Null 的解决办法  就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
    歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


    作       者:华    仔
    联系作者:who.seek.me@java98k.vip
    来        源:CSDN (Chinese Software Developer Network)
    原        文:https://blog.csdn.net/Hello_World_QWP/article/details/125997774
    版权声明:本文为博主原创文章,请在转载时务必注明博文出处!
  • 相关阅读:
    JavaScript算法 — 二叉树遍历
    基础医学概论练习题(含答案)
    iNFTnews | 回顾支付宝鲸探发展历程:是数藏的投机客还是引领者?
    关于ASO优化的分步入门指南2
    PDE求格林函数
    Spring Data Web支持
    java数组
    【Java 进阶篇】JavaScript二元运算符详解
    Bitxhub跨链平台
    搭建Python开发环境
  • 原文地址:https://blog.csdn.net/Hello_World_QWP/article/details/125997774