2014-10-15 3 views
1

У меня есть класс DAO дженерик в моем весеннем проекте, я должен получить класс родового TI знает чисто 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 
    } 
} 

Но в весеннем проекте, Я должен получить Foo от «ApplicationContext», я не могу получить Foo по:

Foo<ClassName> foo = new Foo<ClassName>(ClassName.class); 

Как получить класс универсального типа весной.

+1

'@Autowired частный Foo ;' http://spring.io/blog/2013/12/03/spring-framework-4-0-and-java-generics –

ответ

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> 
-1

Это часть Инъекции зависимостей. Вы можете создавать экземпляры объектов. & также может передавать через него значения членов класса. Пожалуйста, обратитесь к следующей ссылке.

http://www.tutorialspoint.com/spring/spring_dependency_injection.htm

Смежные вопросы