在上文Spring Boot 初步学习01(点击查看)中,咱们曾经将STS开发工具整合Maven创立了我的项目,进行了测试,这篇文章咱们一起持续整合一下连接池.
连接池抉择
市面上对于数据库连接池有很多抉择,如:C3P0,Druid,HikariCP等.
留神:数据库连接池都须要实现数据库连接池公共接口:javax.sql.DataSource
本文中抉择HikariCP连接池号称是目前最快的连接池,而且目前在springboot工程默认举荐应用HiKariCP连接池.
整合HiKariCP连接池
创立我的项目
创立一个Spring Starter Project我的项目
增加依赖
右键我的项目中的pom.xml文件 --> spring --> Edit Starters --> 搜寻jdbc --> 勾选MySQL Driver/JDBC API两个依赖 --> 保留会主动下载依赖
留神:
看似咱们并没有抉择上文说好的HiKariCP连接池,这是因为在pom.xml中jdbc依赖会默认帮咱们下载HiKariCP连接池.
配置连接池
SpringBoot中提倡的就是零配置,少配置.
只须要在application.properties配置文件中进行大量配置数据库信息即可.
配置信息如下图:
别离是数据库url地址/用户名/明码,皆依据本身状况设定.
过程剖析
首先各种连接池都是实现的DataSource接口,创建对象时,咱们采纳父类申明/子类创立的形式,这是面向接口的思维,能够更加无效的解耦,也更加不便当前的批改或是保护.
HiKariCP连接池创立连贯时,第一次创立时,破费工夫会较长,再次获取连贯会绝对工夫短很多,是因为第一次创立时,须要先创立池,再去创立连贯寄存在池中或间接应用,所以工夫会较长.
并且当只是创立一个连贯时,通过断点跟踪,能够看到就只是创立了一次;而当咱们须要创立两个及以上的连贯时,通过断电追踪,也能够发现,都会在须要的根底上再多创立一个,这是因为底层会多创立一个备用的机制,以防如果呈现问题,或是再有需要时应用.
另外,当连贯都在应用时,同一时间是不会有雷同的连贯给别离的对象应用的,这是基于连接池底层的双重校验机制;其劣势就是在保障线程平安的同时还会思考其性能;只有当连贯应用完后放回至连接池中,再有对象应用时,才有可能应用到反复的连接池.
最初,当框架应用连接池时,其实也是由DirverManage来创立,只是之后会交给池来治理,底层都是一样的.