Spring项目启动过程修改beanName
根据spring提供的钩子,修改beanName
ApplicationContextAware或缺容器对象,根据map获取到类,可以修改类名
java
在这里插入代码片
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
applicationContext.getBeansOfType(IService.class).values().forEach(e->map.put(e.getName(), e));
}
@PostConstruct
public void initServiceMap() {
Map<String, IService> map = applicationContext.getBeansOfType(IService.class);
for (IServiceaes : map.values()) {
taskServiceMap.put(aes.getNewBeanName(), aes);
}
}