2014-02-15 67 views
0

我有一個與Spring注入有關的問題。使用Spring注入基於泛型類的類對象

我有一個用泛型類型參數定義的類。我想知道是否可以注入類型T的類對象(我的意思是T.class)?

像這樣:

@Component 
public class MyExecutor<T> { 
    @Autowired 
    public MyExecutor(<Inject class object of T>) { 
     .... 
    } 
} 

非常感謝你。

回答

1

該具體示例不起作用,但有另一種方法使用泛型創建bean,並在其他bean中注入bean時保留該類型。

Spring 4擴展了對Java配置中泛型的支持。現在可以定義兩個豆只能在使用的通用參數不同,通過鍵入另一個bean注入他們,看到這個JIRA

@Configuration 
public class Config { 

    @Bean("beanA") 
    public MyExecutor<A> beanA() { 
     return new MyExecutor<A>(A.class); 
    } 

    @Bean("beanB") 
    public MyExecutor<B> beanB() { 
     return new MyExecutor<B>(B.class); 
    } 
} 

然後beanA或beanB按類型可注入:

@Component 
public class OtherClass { 

    @Autowired 
    private MyExecutor<A> beanA; 

}