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;
}
}
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;
}
}