动态spring工厂创建一个由其给定类型请求的bean?

时间:2017-06-12 09:17:09

标签: java spring dependency-injection

Springframework具有灵活的依赖注入机制。有许多方法可以定义bean,包括FactoryBean,您可以在其中为特定的已知类型创建工厂。 但是,我正在寻找的是一种创建工厂的方法,如果bean按类型请求但不存在并且会导致没有这样的bean异常,则将其作为回退调用。因此我希望像<T> T getObject(Class<T> type)这样的API(而FactoryBean缺少类型)。我是否需要实现自己的BeanFactory并定义为父容器(听起来很笨拙且不灵活)或者解决这个问题的最佳方法是什么?由于spring数据以某种方式设法实例化任何子类型的Repository,这应该是可能的。我实际上也可以发明一个标记界面,我将从中派生出所有子类型。 背景:我想支持@Inject用于任何服务接口,这样我就可以获得一个远程调用该服务的客户端代理。我已经实现了手动创建此类客户端(https://github.com/hohwille/oasp4j/blob/develop/modules/service/src/main/java/io/oasp/module/service/common/api/client/ServiceClientFactory.java)的所有功能。现在我只需要缺少的链接将其与spring DI集成。

仅供参考:我在整个网络上搜索了这个。我发现类似或相同的问题,如How to create a bean by type in Spring?,但没有(真实的)答案。

0 个答案:

没有答案