一、基础知识
- Java变量的初始化顺序
-> 静态变量或静态语句块
–> 实例变量或初始化语句块
–> 构造方法
–> @Autowired
二、区别
明确了java变量的初始化顺序就能确定一点。假如我们通过seter方式注入bean,但是又在实例变量或者初始化块中使用bean的方法,这样就会出现空指针的问题。因为@autowired写在变量上的注入要等到类完全加载完才会将相应的bean注入。
总的来说,区别就是加载顺序的不同。
三、代码示例
public class Test{
@Autowired
private A a;
private final String name