1、启动两个mysql,可以按照如下操作使用docker来部署mysql容器,比较简单
2、如果配置了多个数据源,则默认的数据源配置就不再生效了,如果配置两个数据源,则两个数据都需要自定义,找到javax.sql.DataSource接口,F4查看其实现类
单数据源使用自动配置时的配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.101.116:3306/myapp001?useSSL=false
spring.datasource.username=root
spring.datasource.password=12345spring.datasource.hikari.maximum-pool-size=20
3、我们使用的为HikariCP连接池,所以需要实例化HikariDataSource,进入到该类源码中,发现其继承了HikariConfig,进入HikariConfig,可以看到一些很熟悉的属性,不过当前测试时指挥使用到一些简单配置
通过https://www.cnblogs.com/qq931399960/p/11523723.html了解到,springboot可以通过@ConfigurationProperties注解批量的把参数注入到实体类中,所以我们就可以定义自己的数据源了
多个数据源配置及测试
为了方便测试,注入数据源后,使用JdbcTemplate来操作数据库
端口3306的myapp001数据库中,user表存在三条数据
mysql>use myapp001;
Database changed
mysql> select *from user;+------+------+
| id | name |
+------+------+
| 1 | aa |
| 2 | bb |
| 3 | cc |
+------+------+
3 rows in set (0.04 sec)
端口3307的myapp002数据库中,uer表数据为空
mysql>use myapp002;
Database changed
mysql> select *from user;
Empty set (0.02 sec)
1、配置数据源
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.jdbc-url=jdbc:mysql://192.168.101.116:3306/myapp001?useSSL=false
spring.datasource.username=root
spring.datasource.password=12345spring.datasource.maximum-pool-size=30spring.datasource.app.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.app.jdbc-url=jdbc:mysql