Spring 实现动态注册Bean
2016-12-03 14:58
337 查看
写一个组件,需要依据配置选择DAO实现,比如JPA,Mybatis
预期效果为,系统启动时根据配置自动向spring注册相关的组件(比如JPA相关组件)
通常向spring注册组件都是使用xml、@Bean注解或者@Component方式实现,这些方式都是静态的,不能通过程序来选择是否注册。
spring当然也提供了注册组件的扩展,就是 BeanDefinitionRegistryPostProcessor,
实现了BeanDefinitionRegistryPostProcessor的类可以获得BeanDefinitionRegistry 对象,通过它可以动态的注册组件。
预期效果为,系统启动时根据配置自动向spring注册相关的组件(比如JPA相关组件)
通常向spring注册组件都是使用xml、@Bean注解或者@Component方式实现,这些方式都是静态的,不能通过程序来选择是否注册。
spring当然也提供了注册组件的扩展,就是 BeanDefinitionRegistryPostProcessor,
实现了BeanDefinitionRegistryPostProcessor的类可以获得BeanDefinitionRegistry 对象,通过它可以动态的注册组件。
@Component public class RegistryDemo implements BeanDefinitionRegistryPostProcessor { @Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException { GenericBeanDefinition definition = new GenericBeanDefinition(); definition.setBeanClass(Demo.class); //设置类 definition.setScope("singleton"); //设置scope definition.setLazyInit(false); //设置是否懒加载 definition.setAutowireCandidate(true); //设置是否可以被其他对象自动注入 beanDefinitionRegistry.registerBeanDefinition("demo", definition); } //省略其他代码 }
相关文章推荐
- Spring动态注册bean实现动态多数据源
- spring实现动态注册bean
- Spring实现Bean动态注册
- Spring动态注册bean实现动态多数据源
- Spring动态注册bean实现动态多数据源
- Spring之动态注册bean的实现方法
- Spring3.1.0实现原理分析(七).填充Bean属性,初始化Bean,登记善后处理,注册单例Bean
- spring 根据配置文件动态注册bean
- spring中注册bean(通过代码动态注册)
- spring中注册bean(通过代码动态注册)
- spring概念简介、bean扫描与注册实现方式
- Spring动态的注入Bean对象的实现方式,
- 理解spring的BeanDefinition和配置文件(原文标题:动态注册bean到spring容器)
- 实现Spring动态注册多数据源
- spring概念简介、bean扫描与注册实现方式
- Spring动态注册Bean
- spring中注册bean(通过代码动态注册)
- Spring概念简介、bean扫描与注册实现方式
- Spring动态注册多数据源的实现方法
- spring中注册bean(通过代码动态注册)