我的spring项目中有一个泛型类DAO,我必须得到通用的类T.我知道纯java解决方案:
class Foo<T> {
final Class<T> typeParameterClass;
public Foo(Class<T> typeParameterClass) {
this.typeParameterClass = typeParameterClass;
}
public void bar() {
// you can access the typeParameterClass here and do whatever you like
}
}
但是,在Spring项目中,我必须从“ApplicationContext”中获取Foo,我无法通过以下方式获取Foo:
Foo<ClassName> foo = new Foo<ClassName>(ClassName.class);
如何在Spring中获取泛型类。
答案 0 :(得分:1)
Spring能够使用带参数的构造函数
在java配置中,它非常简单:
@Configuration
public class MyConf {
...
@Bean
private foo() {
return new Foo<ClassName>(ClassName.class);
}
...
}
也可以使用XML配置
<bean id="foo" class="...Foo">
<constructor-arg type="java.lang.Class" value="...ClassName"/>
</bean>