我有以下课程:
@component
public class Car extends abstract Vehicle {
public Car() {
super(10);
}
}
public abstract class Vehicle {
@Autowired
private Validator em;
public Vehicle(int i) {
// init
}
public int getVehicle() {
}
}
当我使用以下内容创建bean时:
applicationContext.getAutowireCapableBeanFactory().createBean(..)
它有一个异常,说明无法注入验证器bean ...
但是,如果我将自动装配更改为setter注入,则其工作方式如下:
public abstract class Vehicle {
private Validator em;
public Vehicle(int i) {
// init
}
public int getVehicle() {
}
@Autowired
public set Em(Validator em) {
this.em = em;
}
}
有人可以向我解释一下,这与bena生命周期的运作方式有关吗?
答案 0 :(得分:0)
Spring允许在抽象类中使用@Autowiring
,所以我在这里看不到任何问题。如果你在setter上放置注释,我会怀疑你有Validator
类的某种循环依赖,所以这就是你必须在setter上添加注释的原因。