spring动态bean注册示例分享
2014-03-06 00:00
706 查看
1.在一些特殊的场景中需要动态向spring注册bean
2.spring版本2.5.6
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注册示例分享
- Spring动态注册Bean
- spring中注册bean(通过代码动态注册)
- spring 动态注册bean
- 【Spring】bean动态注册到spring
- Spring解密之XML解析与Bean注册示例详解
- spring 根据配置文件动态注册bean
- Spring之动态注册bean的实现方法
- spring中注册bean(通过代码动态注册)
- Spring动态注册bean实现动态多数据源
- spring中注册bean(通过代码动态注册)
- Spring实现Bean动态注册
- Spring动态注册bean实现动态多数据源
- spring bean装配 注册动态工厂和静态工厂
- Spring运行时动态注册bean的方法
- 理解spring的BeanDefinition和配置文件(原文标题:动态注册bean到spring容器)
- Spring Boot如何动态创建Bean示例代码
- spring实现动态注册bean
- spring中注册bean(通过代码动态注册)
- Spring 实现动态注册Bean