java - 同一接口(interface)的Spring多重实现

标签 java spring

我有一个接口(interface)和这个接口(interface)的多个实现类,大约有 10 个。

我有一个像 prefix + name + suffix 这样的命名约定所以在运行时,我可以添加 @Autowired private Map<String, MyInterface> myImplementations; 然后使用 myImplementations.get() 访问实现类方法。

有没有更好的方法来访问这些实现?我只知道哪个暗示。我在运行时需要,更改取决于我收到的消息。

最佳答案

你可以实现BeanFactoryAware类中的接口(interface),然后使用注入(inject)的 bean 工厂来获得所需的实现:

Interface impl = beanFactory.getBean("interfaceimpl");

Interface impl = beanFactory.getBean(InterfaceImpl.class);

关于java - 同一接口(interface)的Spring多重实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31401034/

相关文章:

java - 将字符串转换为对象

java - 两个 Android 设备之间的蓝牙数据传输

spring - Thymeleaf 和 Spring Security - 自定义 SpEL 表达式

spring-integration-kafka 配置消费者从指定分区接收消息

java - 无法在 64 位 Linux 上使用 9g 保留堆

java - 使用 Jenkins 和 maven 发布 WAR 文件到 Artifactory

java - 读取为 JSONObject 时对象属性小写

hibernate - DbUnit NoSuchTableException 与 Spring、Hibernate、HSQSLB

java - MongoDB 和 Spring MVC : PATCH operation?

java - 在 Spring web-flow 中存储流的状态