1.在一些特殊的场景中需要动态向spring注册bean
2.spring版本2.5.6
复制代码 代码如下:
public class ServiceServiceImpl implements ServiceService, ApplicationContextAware {
@Override
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
throws BeansException {
this.context = applicationContext;
}
public void addBeanService(Service service) throws BVSException {
if (!context.containsBean(service.getServiceName())) {
Class<?> serviceClass = getServiceClass(service.getClassName());
BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(serviceClass);
beanDefinitionBuilder.addPropertyValue("servicename", service.getServiceName());
registerBean(service.getServiceName(), beanDefinitionBuilder.getRawBeanDefinition());
}
}
/**
* @desc 向spring容器注册bean
* @param beanName
* @param beanDefinition
*/
private void registerBean(String beanName, BeanDefinition beanDefinition) {
ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) context;
BeanDefinitionRegistry beanDefinitonRegistry = (BeanDefinitionRegistry) configurableApplicationContext
.getBeanFactory();
beanDefinitonRegistry.registerBeanDefinition(beanName, beanDefinition);
}
/**
* @desc 根据类名查找class
* @param className
* @return
* @throws BVSException
*/
private Class<?> getServiceClass(String className) throws BVSException {
try {
return Thread.currentThread().getContextClassLoader().loadClass(className);
} catch (ClassNotFoundException e) {
log.error("not found service class:" + className, e);
throw new BVSException("not found service class:" + className, e);
}
}
}
spring,动态bean
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 群星.2022-一不小心喵上你原声大碟【TME影音】【FLAC分轨】
- 《战锤40K星际战士2》卡在正在加入服务器解决方法
- 《勇者斗恶龙怪物仙境3》玩法内容介绍
- 《幸福工厂》无限报错解决方法
- 交错战线原始交易所推荐角色一览
- 战锤40K星际战士2战术职业介绍|战术职业技能效果一览
- 战锤40K星际战士2突击职业介绍|突击职业技能效果一览
- [妙音金曲]群星《悲情咖啡屋》(黑胶)2CD[DTS-WAV]
- 阿兰·达瓦卓玛《A-Lan阿兰唯美歌姬》2CD[DTS-WAV]
- 【小提琴】陈立新《思乡曲》2004[FLAC+CUE]
- 《战地》新作明年初大规模测试!EA已内部测试一年
- 《GTAOL》PC版时隔多年更新反作弊!小助手宣布跑路
- EA称AI是其业务核心!能提高开发效率、节约成本
- 卫华.1990-太阳升【BMG】【WAV+CUE】
- 呼吸乐队.1992-THEBREATHING【深飞】【WAV+CUE】