Spring BeanPostProcessor与动态加载数据源配置
2014-10-18 21:30
330 查看
前言:
本文旨在介绍Spring动态配置数据源的方式,即对一个DataSource的配置诸如jdbcUrl,user,password,driverClass都通过运行时指定,而非由xml静态配置定死。
Spring构造Context的参数一般只包含配置文件路径和类加载器,如果需要达到动态传入配置参数的目的,需要Spring在初始化数据源相关bean的时候能够对原有配置执行修改或替换,为方便处理,本文将定义一个名为DynamicDataSourceConfigHolder的公共类提供配置数据存储。
本文替换数据源为c3p0配置。
BeanPostProcessor简介:
Spring BeanPostProcesssor通常被称为Spring Bean回调处理器,它一般用于在实例化一个bean的前后增加一些附加操作,它会对全局的Spring bean配置生效。
Spring Bean的生命周期处理:
Spring Bean生命周期通常对应两种处理方式,一种是init-method &destroy-method, 另一种是InitializingBean的afterPropertiesSet()方法和DisposeBean的destroy()方法,BeanPostProcessor的出现使得批处理Spring bean定义有了可能。
BeanPostProcessor定义:
View Code
本文旨在介绍Spring动态配置数据源的方式,即对一个DataSource的配置诸如jdbcUrl,user,password,driverClass都通过运行时指定,而非由xml静态配置定死。
Spring构造Context的参数一般只包含配置文件路径和类加载器,如果需要达到动态传入配置参数的目的,需要Spring在初始化数据源相关bean的时候能够对原有配置执行修改或替换,为方便处理,本文将定义一个名为DynamicDataSourceConfigHolder的公共类提供配置数据存储。
本文替换数据源为c3p0配置。
BeanPostProcessor简介:
Spring BeanPostProcesssor通常被称为Spring Bean回调处理器,它一般用于在实例化一个bean的前后增加一些附加操作,它会对全局的Spring bean配置生效。
Spring Bean的生命周期处理:
Spring Bean生命周期通常对应两种处理方式,一种是init-method &destroy-method, 另一种是InitializingBean的afterPropertiesSet()方法和DisposeBean的destroy()方法,BeanPostProcessor的出现使得批处理Spring bean定义有了可能。
BeanPostProcessor定义:
Map<String,String> dynamicDataSourceConfig = new HashMap<String,String>(); dynamicDataSourceConfig.put("db.driverClass", "com.mysql.jdbc.Driver"); dynamicDataSourceConfig.put("db.jdbcUrl", "jdbc:mysql://127.0.0.1:3306/menlo3?autoReconnect=true&characterEncoding=utf-8"); dynamicDataSourceConfig.put("db.user", "root"); dynamicDataSourceConfig.put("db.password", "root"); DynamicDataSourceConfigHolder.setDynamicConfig(dynamicDataSourceConfig); ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"classpath:dynamicDatasource/applicationContext.xml"}); //执行一段操作数据库的逻辑验证即可. assertNotNull(applicationContext);
View Code
相关文章推荐
- Spring BeanPostProcessor与动态加载数据源配置
- Spring BeanPostProcessor与动态加载数据源配置
- Spring BeanPostProcessor与动态加载数据源配置
- 04Spring_bean 后处理器(后处理Bean),BeanPostProcessor ,bean创建时序,动态代理
- 借助BeanFactoryPostProcessor修改spring配置文件
- Spring boot加载外部配置文件-EnvironmentPostProcessor
- spring+mybatis配置多数据源总结,重点是动态加载数据源,支持动态切换
- 利用Spring BeanPostProcessor 初始化时加载数据到缓存
- spring+mybatis配置多数据源总结,重点是动态加载数据源,支持动态切换
- 利用Spring BeanPostProcessor 初始化时加载数据到缓存
- Spring 【 BeanPostProcessor】 处理器接口 与 【init-method 】配置属性
- Spring的后置处理器(BeanFactoryPostProcessor和BeanPostProcessor)
- Spring bean配置中属性值由String到实际类型的动态转化过程及PropertyEditor类的应用
- Spring动态注册bean实现动态多数据源
- Spring配置文件加载时出现Bean property 'newscontentDAO' is not writable or has an invalid setter method错误的解决
- Spring中使用BeanPostProcessor需要注意的地方
- 通过环境变量设置WEB项目数据源(Spring)及其项目配置文件路径,动态更新数据源及项目配置
- 快速上手Spring--3. 加载Bean的配置文件
- Spring BeanPostProcessor接口 (在Spring实例化bean的前后执行一些附加操作) .
- Spring 的 BeanPostProcessor