zoukankan      html  css  js  c++  java
  • 关于工具类中@Autowired注入为NULL的问题记录

     记录:在实体类中加入@Component注解和@Autowired注解时Service不能注入成功。
    @Component //把普通pojo实例化到spring容器中  ①
    public class MyUtil {
        // 这里是需要注入的Service ②
        @Autowired
        private MyService myService;
        private static MyUtil myUtil;
    
        //初始化 ③
        @PostConstruct
        public void init() {
            myUtil = this;
        }
    
        //调用 ④
        public static void insertParam() {
            // 调用方法 ⑤
            myUtil.myService.testInsert();
        }
    }

    注释:①将普通pojo实例化到容器中、如果无注解myUtil为null
               ②spring自动注入,如果在静态方法中调用此注入类的方法,发现注入为'null';这里不是因为spring未注入,而是被static方法给'清空'了,在无法先于static方法初始化时可以使用@PostConstruct进行初始化。
       (注:@PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。)

               ③使用@PostConstruct注解的方法public void init()先给该类赋值,然后通过@Autowired注入进来。这样不会影响dao等service下面调用的注入。
       ④ static方法使用类名直接调用
       ⑤调用方法 myService现在是作为myUtil的属性

    参考

  • 相关阅读:
    day-8 xctf-guess_num
    CTF导引(一)
    day-7 xctf-level2
    day-6 xctf-hello_pwn
    day-5 xctf-when_did_you_born
    day-4 xctf-pwn CGfsb
    CrackMe_002
    如何将Map对象转换为一个实体类对象
    索引相关问题
    事务相关知识总结
  • 原文地址:https://www.cnblogs.com/sueyyyy/p/9841857.html
Copyright © 2011-2022 走看看