关于构造方法使用@Autowired

最近看到有些工程里面将@Autowired使用在了构造方法上,觉得有些奇怪,为何不写在方法上?
一番百度后有了答案
原来是执行顺序的问题
Java变量的初始化顺序为:静态变量或静态语句块–>实例变量或初始化语句块–>构造方法–>@Autowired
如果在构造方法中操作了之前用@Autowired注解的对象、方法,就会空指针报错
因为此时还没有成功的注入bean。
所以推荐在构造方法上使用@Autowired
本文解析了在Java中,在构造方法中使用@Autowired的原因,避免因初始化顺序导致的空指针问题,并提倡适当使用,确保bean注入的时机正确。
关于构造方法使用@Autowired

最近看到有些工程里面将@Autowired使用在了构造方法上,觉得有些奇怪,为何不写在方法上?
一番百度后有了答案
原来是执行顺序的问题
Java变量的初始化顺序为:静态变量或静态语句块–>实例变量或初始化语句块–>构造方法–>@Autowired
如果在构造方法中操作了之前用@Autowired注解的对象、方法,就会空指针报错
因为此时还没有成功的注入bean。
所以推荐在构造方法上使用@Autowired
8194
1230
5023

被折叠的 条评论
为什么被折叠?