Spring(从版本 4 开始)声称支持泛型类型注入(inject),我正在尝试做这样的事情:
public abstract class AbstractControl<T extends IService> {
@Autowired
private T service;
protected T getService(){
return service;
}
public void setService(T service) {
this.service = service;
}
}
然后是这个类的扩展:
public class FooControl extends AbstractControl<LoginService> {
}
但是 Spring 正在尝试注入(inject) IService
。是否可以注入(inject)继承的类型?
最佳答案
尝试将@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;
}
}
关于java - Spring Autowiring 泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39358099/