W3Schools Learner's Blog

W3Schools Programming knowledge summary website

div

7/06/2019

Spring配置HikariCP连接池的使用方法

HikariCP连接池声称世界最快的连接池,不管怎么样,既然这样号称,小编就在自己的SSM框架项目中来配置一下HikariCP连接池,它和c3p0,dbcp等连接池的配置还是有一点儿不一样的,下面来开始学习如何spring配置HikariCP连接池吧!
第一步:添加HikariCP maven jar包,不同的jdk版本的jar包也有所不同,如下所示:
Java 8/9 maven artifact: 
<dependency>
 <groupId>com.zaxxer</groupId>
 <artifactId>HikariCP</artifactId>
 <version>3.1.0</version>
</dependency>
Java 7 maven artifact:    
<dependency>
 <groupId>com.zaxxer</groupId>
 <artifactId>HikariCP-java7</artifactId>
 <version>2.4.13</version>
</dependency>
Java 6 maven artifact:
<dependency>
 <groupId>com.zaxxer</groupId>
 <artifactId>HikariCP-java6</artifactId>
 <version>2.3.13</version>
</dependency>
第二步:添加jdbc.properties配置文件,要注意的是:HikariCP连接池的mysql jdbc driver驱动不是“com.mysql.jdbc.Driver”了,而是下面“com.mysql.cj.jdbc.MysqlDataSource”这种了,如果不用下面这种,就会报错的。
jdbc.driver=com.mysql.cj.jdbc.MysqlDataSource
jdbc.url=jdbc:mysql://localhost:3306/voa?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=userroot
第三步:在spring-context.xml中添加HikariCP连接池的datasource数据源配置,HikariCP是很智能的,很多配置都不需要自己加,因为它已经帮你优化得很好了,所以小编只加入了一个maximumPoolSize最大连接池数量,其它的除了用户名和密码,基本上都没有添加:
<!-- 使用spring自带的占位符替换功能 -->
<bean
 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
 <!-- 允许JVM参数覆盖 -->
 <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
 <!-- 忽略没有找到的资源文件 -->
 <property name="ignoreResourceNotFound" value="true" />
 <!-- 加载jdbc资源文件 -->
 <property name="locations">
  <list>
   <value>classpath:jdbc.properties</value>
  </list>
 </property>
</bean>
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
    <!--poolName属性自定义即可-->
 <property name="poolName" value="springHikariCP" />
 <property name="dataSourceClassName" value="${jdbc.driver}" />
 <property name="maximumPoolSize" value="20"/>
 
 <property name="dataSourceProperties">
  <props>
   <prop key="url">${jdbc.url}</prop>
   <prop key="user">${jdbc.username}</prop>
   <prop key="password">${jdbc.password}</prop>
  </props>
 </property>
</bean> 
<!-- HikariCP dataSource配置 -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
 <constructor-arg ref="hikariConfig" />
</bean>

No comments:

Post a Comment

Note: only a member of this blog may post a comment.