如何在Spring中获取泛型类

时间:2014-10-15 07:17:10

标签: java spring generics

我的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中获取泛型类。

1 个答案:

答案 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>