java - Spring 3.1 Autowiring 具有多个泛型参数的泛型类

标签 java spring generics

我正在尝试实现一个通用的 DAO,但我遇到了一个问题......

这是我的问题:

public class ClassA<T,P,S> extends JpaRepository<T, Integer>{
   dostuff<P,S>(){...}
}

@Autowired
private ClassA<BeanA,BeanB,BeanC> classA;

此时,我在编译时收到此错误:

Error creating bean with name 'ClassA': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Not an managed type: interface java.lang.Object

根据我在这个网站上看到的内容,Spring 4.0 应该可以完成这些工作,但我正在使用 Spring 3.1 并且无法升级......

也许我的测试可以帮助您回答我的问题:

public class ClassA extends JpaRepository<BeanA, Integer>{
   dostuff<BeanB,BeanC>(){...}
}

@Autowired
private ClassA classA;

public class ClassA<T extends BeanA,P extends BeanB, S extends BeanC> extends JpaRepository<T, Integer>{
   dostuff<P,S>(){...}
}

@Autowired
private ClassA<BeanA,BeanB,BeanC> classA;

工作得很好。

提前感谢您的建议;)

最佳答案

例如,尝试通过为指定存储库显式指定限定符来 Autowiring

@Autowired
@Qualifier("classA")
private ClassA<BeanA,BeanB,BeanC> classA;

关于java - Spring 3.1 Autowiring 具有多个泛型参数的泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28547210/

相关文章:

java - Spring-remoting SimpleHttpInvokerRequestExecutor 在不应该重试请求时重试请求

spring - @RestControllerAdvice 和 @ControllerAdvice 在一起

java - 如何在 java 中从 Vector<T> 获取 T 的类

django - urls.py 的 CRUD 模式,将对象从 URI 传递到 View

c# - 在 C# 中为具体类中的任何类型实现通用接口(interface)

java - Apache PDFBox : Get alignment and font from a PDAnnotationWidget or PDTextField

java - 找不到符号导入 com.user.userCom

java - JAVA中关联数组的数组

java - 使用 ListView 时 Activity 的奇怪标题损坏

spring - Spring Elasticsearch聚合过滤不起作用