Spring 自动装配通用类型

Spring autowire generic type

Spring(从版本 4 开始)声称支持泛型类型注入,我正在尝试做这样的事情:

public abstract class AbstractControl<T extends IService> {

@Autowired
private T service;

protected T getService(){
    return service;
}

public void setService(T service) {
    this.service = service;
}

}

然后 class 的扩展:

public class FooControl extends AbstractControl<LoginService> {
}

但是 Spring 正试图注入 IService。是否可以注入继承类型?

尝试将 @Autowired 移动到子类中,如下所示:

  public abstract class AbstractControl<T extends IService> {

    private T service;

    protected T getService(){
        return service;
    }

    public void setService(T service) {
        this.service = service;
    }
  }

和子类:

public class FooControl extends AbstractControl<LoginService> {

   @Override
   @Autowired
   public void setService(LoginService service) {
        this.service = service;
    }
}