Java 以编程方式使用泛型参数注册Springbean
假设我有一些抽象的泛型类:Java 以编程方式使用泛型参数注册Springbean,java,spring,generics,Java,Spring,Generics,假设我有一些抽象的泛型类: public abstract class AbstractExampleService<T extends Foo> { // some logic around T } 公共抽象类AbstractExampleService{ //关于T的一些逻辑 } 此外,我还有该类的x个实现,如: @Component public class FirstExampleService extends AbstractExampleService<
public abstract class AbstractExampleService<T extends Foo> {
// some logic around T
}
公共抽象类AbstractExampleService{
//关于T的一些逻辑
}
此外,我还有该类的x个实现,如:
@Component
public class FirstExampleService extends AbstractExampleService<FirstExample>{
}
@组件
公共类FirstExampleService扩展了AbstractExampleService{
}
到目前为止还不错
但是正如您所看到的,在实现的类中没有逻辑,所以我想编写一些基础结构代码来代替这个实现
我想在应用程序启动时注册x实现:
@Configuration
public class Config {
@Autowired
private List<Foo> fooList;
@Autowired
private AutowireCapableBeanFactory beanFactory;
public void initServiceBeans(){
for (Foo foo : fooList) {
Class<? extends Foo> aClass = foo.getClass();
registerGenericService(AbstractExampleService.class, aClass, aClass.getSimpleName() + "Service");
}
}
private void registerGenericService(Class<?> parentClass, Class<? extends Foo> genericArgument, String beanName){
// How to implement it????
}
}
@配置
公共类配置{
@自动连线
私人名单傻瓜;
@自动连线
私人自动布线beanFactory beanFactory;
public-void initServiceBeans(){
对于(Foo-Foo:傻瓜){
等级