SpringBoot 的多数据源配置 (3)

访问测试,我这里直接 CURL 请求。

➜ ~ curl localhost:8080/books { "code": "0000", "message": "success", "data": [ { "id": 1, "author": "金庸", "name": "笑傲江湖", "price": 13, "createtime": "2020-12-19T07:26:51.000+00:00", "description": "武侠小说" }, { "id": 2, "author": "罗贯中", "name": "三国演义", "price": 14, "createtime": "2020-12-19T07:28:36.000+00:00", "description": "历史小说" } ] } ➜ ~ curl localhost:8080/users { "code": "0000", "message": "success", "data": [ { "id": 1, "name": "金庸", "birthday": "1924-03-09T16:00:00.000+00:00" }, { "id": 2, "name": "罗贯中", "birthday": "1330-01-09T16:00:00.000+00:00" } ] } ➜ ~

至此,多数据源配置完成,测试成功。

连接池

其实在多数据源改造中,我们一般情况下都不会使用默认的 JDBC 连接方式,往往都需要引入连接池进行连接优化,不然你可能会经常遇到数据源连接被断开等报错日志。其实数据源切换连接池数据源也是十分简单的,直接引入连接池依赖,然后把创建 dataSource 的部分换成连接池数据源创建即可。

下面以阿里的 Druid 为例,先引入连接池数据源依赖。

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency>

添加 Druid 的一些配置。

spring.datasource.datasource2.initialSize=3 # 根据自己情况设置 spring.datasource.datasource2.minIdle=3 spring.datasource.datasource2.maxActive=20

改写 dataSource Bean 的创建代码部分。

@Value("${spring.datasource.datasource2.jdbc-url}") private String url; @Value("${spring.datasource.datasource2.driver-class-name}") private String driverClassName; @Value("${spring.datasource.datasource2.username}") private String username; @Value("${spring.datasource.datasource2.password}") private String password; @Value("${spring.datasource.datasource2.initialSize}") private int initialSize; @Value("${spring.datasource.datasource2.minIdle}") private int minIdle; @Value("${spring.datasource.datasource2.maxActive}") private int maxActive; @Bean(name = "dataSource2") public DataSource dataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl(url); dataSource.setDriverClassName(driverClassName); dataSource.setUsername(username); dataSource.setPassword(password); dataSource.setInitialSize(initialSize); dataSource.setMinIdle(minIdle); dataSource.setMaxActive(maxActive); return dataSource; }

这里只是简单的提一下使用连接池的重要性,Druid 的详细用法还请参考官方文档。

文中代码已经上传到 Github: https://github.com/niumoo/springboot

最后的话

文章有帮助可以点个「」或「分享」,都是支持!
文章每周持续更新,可以关注「 未读代码 」公众号或者我的博客。

公众号

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygpxx.html