Spring多个实现相同的接口

时间:2015-07-14 08:01:14

标签: java spring

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

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

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

1 个答案:

答案 0 :(得分:3)

您可以在类中实现BeanFactoryAware接口,然后使用注入的bean工厂来获得所需的实现:

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

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