zoukankan      html  css  js  c++  java
  • Spring Boot@Component注解下的类无法@Autowired的问题


    title: Spring Boot@Component注解下的类无法@Autowired的问题
    date: 2019-06-26 08:30:03
    categories:

    • Spring Boot
      tags:
    • 注入问题

    这个问题心累

    在把我的一个非Web程序迁移从Spring迁移到SpringBoot时,出现了在@Component注解下@Autowired的类为null的情况,也就是没注入成功,或者说是此类在bean加载之前就被调用了。

    试了各种办法,修改扫描包,修改@Component注解等等,皆未成功,后来看到了一个方法,探究了一下。

    @Component
    public class ComponentClass {
    
    <span class="token annotation punctuation">@Autowired</span>
    <span class="token keyword">private</span> JedisClient jedisClient<span class="token punctuation">;</span>
    <span class="token keyword">public</span> <span class="token keyword">static</span> ComponentClass componentClass<span class="token punctuation">;</span>
    <span class="token annotation punctuation">@PostConstruct</span>
    <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
        componentClass <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">;</span>
        componentClass<span class="token punctuation">.</span>jedisClient <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>jedisClient<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    

    }

    • 声明一个此类的静态变量,用以保存bean。
    • 使用@PostConstruct注解,将需要注入的类添加到静态变量中。
    • 接下来,使用这个静态变量来调用注入类就行了。

    @PostConstruct这个注解的具体作用就是:

    注解在方法上,表示此方法是在Spring实例化该bean之后马上执行此方法,之后才会去实例化其他bean

    这样在Spring实例化ComponentClass之后,马上执行此方法,初始化ComponentClass静态对象和成员变量jedisClient

    原文地址:https://blog.csdn.net/weixin_38950807/article/details/93709887
  • 相关阅读:
    PHP微信公众号支付,JSAPI支付方法,ThinkPHP5+微信支付
    PHP微信扫码支付DEMO,thinkphp5+微信支付
    解决vue axios跨域请求发送两次问题
    解决navicat远程连接mysql很卡的问题
    GIT的工作原理和基本命令
    简单好用的网站压力测试工具
    vscode中让html中php代码高亮
    redis的安装及使用总结
    tp32-layuicms项目介绍
    vscode Vue格式化HTML标签换行问题
  • 原文地址:https://www.cnblogs.com/jpfss/p/11981858.html
Copyright © 2011-2022 走看看