一个简单的解决方案是升级到Spring 4.0,因为它将自动以2562824378738731987968的形式考虑泛型,如下所示:
@Autowired
private Item strItem; // Injects the stringItem bean
@Autowired
private Item intItem; // Injects the integerItem bean
实际上,您甚至可以在注入列表时自动嵌套嵌套的泛型,如下所示:
// Inject all Item beans as long as they have an generic
// Item beans will not appear in this list
@Autowired
private List> intItems;
如何运作?
新的ResolvableType类提供了实际使用泛型类型的逻辑。 您可以自己使用它来轻松浏览和解析类型信息。 ResolvableType上的大多数方法本身都会返回ResolvableType,例如:
// Assuming 'field' refers to 'intItems' above
ResolvableType t1 = ResolvableType.forField(field); // List>
ResolvableType t2 = t1.getGeneric(); // Item
ResolvableType t3 = t2.getGeneric(); // Integer
Class> c = t3.resolve(); // Integer.class
// or more succinctly
Class> c = ResolvableType.forField(field).resolveGeneric(0, 0);
在下面的链接中查看示例和教程。
Spring Framework 4.0和Java泛型
弹簧和通用类型的自动装配
希望这对您有所帮助。