主页 > 知识库 > spring动态bean注册示例分享

spring动态bean注册示例分享

热门标签:电销机器人是有一些什么技术 杭州ai语音电销机器人功能 电销机器人好卖么 四川保险智能外呼系统商家 杭州语音电销机器人软件 商洛电销 地图标注线上教程 高德地图标注样式 北票市地图标注

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 Boot如何动态创建Bean示例代码
  • Spring中如何动态注入Bean实例教程
  • JSP 开发之Spring Boot 动态创建Bean
  • 如何在Spring中使用编码方式动态配置Bean详解

标签:丹东 红河 宿州 贵州 云浮 青岛 西藏 江西

巨人网络通讯声明:本文标题《spring动态bean注册示例分享》,本文关键词  spring,动态,bean,注册,示例,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《spring动态bean注册示例分享》相关的同类信息!
  • 本页收集关于spring动态bean注册示例分享的相关信息资讯供网民参考!
  • 推荐文章