-1

我有以下课程:

@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...

但是,如果我将自动装配更改为设置器注入,它的工作方式如下:

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 生命周期的工作方式有关吗?

4

1 回答 1

0

Spring 允许@Autowiring在抽象类中,所以我在这里看不到任何问题。因为如果你在 setter 上放注解,我怀疑你对类有某种循环依赖,Validator所以这就是为什么你必须在 setter 上放注解的原因。

于 2013-03-14T13:28:20.447 回答