【发布时间】:2015-05-21 12:49:18
【问题描述】:
我有一堆实现Repository<T ? extends Node> 类型的存储库bean。现在我可以从用户那里获得一个随机节点列表,并且我想为每个节点获取适当的存储库。由于Spring 4.0RC1,我们可以像这样自动装配存储库:
@Autowired Repository<SomeNode> someNodeRepository;
如文档所述here。
这很好用,但我的问题是如何根据泛型类型动态地做到这一点。
我想做的是这样的:
public <T extends Node> T saveNode(T node) {
Repository<T> repository = ctx.getBean(Repository.class, node.getClass());
return repository.save(node);
}
其中第二个参数是泛型类型。 这当然行不通,尽管它可以编译。
我找不到任何/文档。
【问题讨论】:
-
应该为每个 bean 分配默认名称(不确定它是如何构建的)。如果您可以调试并了解如何为这种情况构建默认 bean 名称,您可以尝试按名称获取 bean
-
什么是 ctx?看不懂