spring中无法使用 @Autowired注解注入静态变量的原因刨析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring中无法使用 @Autowired注解注入静态变量的原因刨析相关的知识,希望对你有一定的参考价值。

参考技术A 由此可见在处理@Autowired时其会直接过滤掉静态方法和变量,因此如果使用静态变量就必须提供一个非静态的方法去给其提供值

spring中Constructor@Autowired@PostConstruct的顺序

依赖注入:

从字面意思就可以知道,要将对象B注入到对象A,那么首先就必须得生成对象B与对象A,才能执行注入。

所以,如果一个类A中有个成员变量B被@Autowired注解,那么@Autowired注入是发生在A的构造方法执行完之后的。

 

如果想在生成对象时候完成某些初始化操作,

而偏偏这些类初始化过程中,又依赖于其他类注入,那么就无法在构造函数中实现。

为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法将会在依赖注入完成后被自动调用。

Constructor >> @Autowired >> @PostConstruct

通俗点讲,就是在A类在初始化时,想要在过程中再做点其他事情,但是因为A类需要B类注入,不能在构造器中做这些操作,那么就用@PostConstruct去做。

 

以上是关于spring中无法使用 @Autowired注解注入静态变量的原因刨析的主要内容,如果未能解决你的问题,请参考以下文章

spring中Constructor@Autowired@PostConstruct的顺序

Spring系列

Spring学习-----Spring使用@Autowired注解自动装配

spring统一注入问题

整理:spring注解 @Autowired @Qualifier @Resource

spring自动注入的三种方式