@Component
public class ServiceLocator implements ApplicationContextAware {
/**
* 用于保存接口实现类名及对应的类
*/
private Map<String, Statisable> map;
/**
* 获取应用上下文并获取相应的接口实现类
*
* @param applicationContext
* @throws BeansException
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
// 根据接口类型返回相应的所有bean
Map<String, Statisable> extendClassMap = applicationContext
.getBeansOfType(Statisable.class);
if (extendClassMap == null) {
map = new HashMap<String, Statisable>();
} else {
map = extendClassMap;
}
}
public Map<String, Statisable> getMap() {
return map;
}
}
在spring托管状态下,怎么动态获得接口都有哪些实现类
最新推荐文章于 2024-05-18 10:22:35 发布