访问测试,我这里直接 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
最后的话
文章有帮助可以点个「赞」或「分享」,都是支持!
文章每周持续更新,可以关注「 未读代码 」公众号或者我的博客。