使用动态数据源可以实现读写分离,然后通过注解的形式只需在方法上加注解就可以实现动态切换数据源
1.通过自定义配置文件配置连接数据库的信息。配置数据如下
spring.dataSource.db1.type=com.alibaba.druid.pool.DruidDataSource
spring.dataSource.db1.driverClassName=com.mysql.jdbc.Driver
spring.dataSource.db1.driver-class-name=com.mysql.jdbc.Driver
spring.dataSource.db1.platform=mysql
spring.dataSource.db1.url=jdbc:mysql://localhost:3306/sqlpractice?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.dataSource.db1.username=root
spring.dataSource.db1.password=admin123
spring.dataSource.db1.initialSize=5
spring.dataSource.db1.minIdle=5
spring.dataSource.db1.maxActive=20
spring.dataSource.db1.maxWait=60000
spring.dataSource.db1.timeBetweenEvictionRunsMillis=60000
spring.dataSource.db1.minEvictableIdleTimeMillis=300000
spring.dataSource.db1.validationQuery=SELECT 1
spring.dataSource.db1.testWhileIdle=true
spring.dataSource.db1.testOnBorrow=false
spring.dataSource.db1.testOnReturn=false
spring.dataSource.db1.filters=stat,wall,log4j
spring.dataSource.db1.logSlowSql=true
spring.dataSource.db2.type=com.alibaba.druid.pool.DruidDataSource
spring.dataSource.db2.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.dataSource.db2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.dataSource.db2.platform=sqlserver
spring.dataSource.db2.url=jdbc:sqlserver://127.0.0.1:1433;databaseName=TEST
spring.dataSource.db2.username=sa
spring.dataSource.db2.password=lyw123456
spring.dataSource.db2.initialSize=5
spring.dataSource.db2.minIdle=5
spring.dataSource.db2.maxActive=20
spring.dataSource.db2.maxWait=60000
spring.dataSource.db2.timeBetweenEvictionRunsMillis=60000
spring.dataSource.db2.minEvictableIdleTimeMillis=300000
spring.dataSource.db2.validationQuery=SELECT 1
spring.dataSource.db2.testWhileIdle=true
spring.dataSource.db2.testOnBorrow=false
spring.dataSource.db2.testOnReturn=false
spring.dataSource.db2.filters=stat,wall,log4j
spring.dataSource.db2.logSlowSql=true
2.配置类如果要加载自定义配置文件中的属性值就需要定义一个配置属性类,
通过配置属性类去获得配置文件中的信息。如下所示,