对泛型弹簧的依赖注入

时间:2017-02-01 05:03:43

标签: spring spring-boot spring-data-elasticsearch

是否有可能在弹簧启动中注入泛型,如下所示?

public interface A <T> extends ElasticsearchRepository<T, Long> {

}

public class B {
    @Autowired
    private A<Object> a;

}

以下代码提供此错误

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericElasticRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Unable to obtain mapping metadata for class java.lang.Object!

是否有通用的替代品?我不想为所有类型的T

编写接口

提前致谢

更新

我的代码中的泛型没有任何问题我想这是存储库与具体类有关。 JpaRepository或ElasticsearchRepository不允许传递泛型,他们需要具体类型我不知道为什么

1 个答案:

答案 0 :(得分:0)

使用Spring 4.0,您可以使用泛型,它会自动将泛型视为@Qualifier的一种形式。 参考 - https://spring.io/blog/2013/12/03/spring-framework-4-0-and-java-generics