基于SpringBoot数据库的连接池集成
一、为什么要使用数据库连接池
1. 在一个javaWeb项目中,数据库是非常重要的一部分,我们在操作数据库的时候不可能每次使用的时候就去创建连接,使用完后就将数据库连接关闭,这是非常浪费资源的(当然如果你是初学者很有可能会这样做,但笔者分析的是实际生产中的使用),所以就要引入数据源,目的是在项目初始化的时候就创建好多个和数据库的连接,后面的请求访问就直接从数据库的连接池中获得数据库的连接,用完后就将连接放回到连接池中,这样可以大大加快访问速率,和减小资源开销。
二、在开发中常使用的数据库连接池
1. SpringBoot默认的数据库连接池 HikariCP 和阿里的 Druid数据源下面会一一进行分析 冲鸭!!!
2. HikariCP数据源和 Druid数据源 在性能上面没有太大区别,但是Druid有很强大的监控功能,后面会做演示。
3.HikariCP 单数据源使用,在pom里面引入文件
配置application.yml文件
这样就可以了,记住现在的项目是使用spring-boot搭建的,这样就可以写单元测试了。
这里我们直接使用操作 dataSource是不是在工作中很少这样用呢,我们这里用最原始的方式可以使读者对数据源有更深刻的认识,下面来看下测试类:
这样就可以获得对应的数据了,是不是很简单呢,不用急我们一步一步来深化,
HikariCP的多数据源是怎么配置的?我们来看,可能在很多网上的博客是这样的:
对应的.yml配置文件如下:
一眼看上去感觉是没有问题的那我们来test一下:
执行代码发现对应的.yml里面配置两个数据源的数据都没有问题,那不就可以了吗,不要急我们来debug看下
细心的朋友肯定发现了这和配置文件里面 配置数据好像不一致,这是为什么呢,10又是怎么来的呢, 有经验的开发者一定知道这是默认值,那为什么我们设置的20,30没有加载进去呢,这就涉及到第二层属性问题,因为 hikari.minimum-idle: 20 和 maximum-pool-size: 30属于第二层属性,没有办法加载,那应该怎么处理呢?请继续往下面看
同样的.yml配置
对应的加载配置文件类
读者要细心看上面的配置哦
好了我们再来测试一下吧
哈哈 看到没 关于数据源池中的最大连接数和最大空闲数 已经加载进去了 ,order数据源也是一样的
5. 接下来我们再来使用Druid来实现创建数据源,
添加pom依赖:
配置.yml文件
这样使用的是druid数据源了,ip:port/druid 就可以访问到监控界面了
多数据源和上面的Hikaricp一样下面就直接贴图不做详细的解释了,读者有问题可以留言
读取配置文件类
同样存在相同的不能读取druid二层配置属性的问题
同理
读取配置文件java 类
这样就可以读取到 druid的属性了
三: 后续SpringBoot和ORM框架的集成
1. 大家一定觉得很奇怪为什么不讲基于ORM框架的集成呢, 如mybatis, Jpa 等等, 我们需要先了解原理,再一步一步集成,敬请期待后面的博客 (读写分离,分库分表 ......)。