javascript
SpringBoot中使用hikariCP
本篇文章主要實現SpringBoot中使用hikariCP;?
一 、使用工具?
1. JDK1.8?
2. springToolSuit(STS)?
3. maven?
二、創建項目?
1.首先創建一個SpringBoot項目,勾選web,mysql等具體怎樣創建可以參考我的上兩個博客;傳送門?
2.maven 依賴如下:?
1)Java 8 maven artifact:
?
2)Java 7 maven artifact:
<dependency><groupId>com.zaxxer</groupId> <artifactId>HikariCP-java7</artifactId> <version>2.4.11</version> <scope>compile</scope> </dependency>?
我的maven依賴為:
<dependencies><!-- spring aop --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <!-- spring data jpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- hibernate 依賴 --> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.0.Final</version> </dependency> <!-- JDBC連接數據庫,因為要用HikariCP,所以需要將SpringBoot中的tomcat-jdbc排除 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <exclusions> <exclusion> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> </exclusion> </exclusions> </dependency> <!-- HikariCP 連接池依賴,從父依賴獲取額版本 --> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <!-- <scope>runtime</scope> --> </dependency> <!-- 因為配置了thymeleaf 模板,可以將此注釋 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> --> <!-- thymeleaf 模板 默認包含spring-boot-starter-web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- 連接mysql數據庫驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- spring boot 內置tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!--@ConfigurationProperties注解--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <!-- net json 這個必須配置jdk的版本號 --> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> <!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream --> <!-- LEGACYHTML5需要搭配一個額外的庫NekoHTML才可用,解決嚴格的html驗證問題 --> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> </dependency> <!-- 單元測試相關依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>?
SpringBoot父依賴如下:
<parent><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>?
這里需要注意的是,因為用了最新的SpringBoot版本,HikarICP從SpringBoot繼承版本,所以JDK需要配置為1.8,如果不是將會出現錯誤,錯誤原因將會在下面展示。?
3.數據庫連接配置文件如下(我將數據庫連接配置單獨寫在了一個配置文件,這樣找起來比較清晰,文件名為 datasource.properties ,后面的配置類中要用到此名字):
?
數據庫配置文件寫好以后,開始寫配置類 :
package com.zlc.config;import javax.sql.DataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.PropertySource; /** * <p>Company: </p> * @Description: * @Create Date: 2017年8月13日下午11:59:49 * @Version: V1.00 * @Author: 追到烏云的盡頭找太陽 */ @Configuration @PropertySource("classpath:datasource.properties") public class DataSourceConfig { private Logger logger = LoggerFactory.getLogger(DataSourceConfig.class); @Bean(name = "primaryDataSource") @Primary @Qualifier("primaryDataSource") @ConfigurationProperties(prefix="spring.datasource.primary" ) public DataSource primaryDataSource() { logger.info("數據庫連接池創建中......."); return DataSourceBuilder.create().build(); } }?
一個@PropertySource(“classpath:datasource.properties”)注解,就可以免去我們自己寫讀取配置文件的麻煩?
第一個數據源的配置類如下:
?
上面有連個需要注意的地方,一個是JPA所在的包名: basePackages= { “com.b505.dao” }) //設置Repository所在位置,一定不能寫錯,一個JPA實體類所在的位置: .packages(“com.b505.entity”) //設置實體類所在位置。
我們在main方法中我們可以檢查一下(一定要注意SpringBoot項目的結構,因為SpringBoot是自動掃描并注冊類注冊到Spring的上下文中所以main所在的類的包名一定是最大的,這樣用其他注解的類才能正常注冊,我的項目結構如下):?
?
如果你的controller寫在了com.zlca.web;那么項目編譯不會產生錯誤,但是此web層的映射全都不能用,因為沒有注冊到Spring中。SpringBoot是掃描@SpringBootApplication下的類以及此注解的子文件夾下的類;?
main方法如下:
?
以上參看了別人的博客,在此謝過,如有侵權,請聯系作者(zlcxmm55@163.com)刪除?
好了,HIkariCP已經配置好了,啟動main;?
完工;這里需要注意的一點,如果是用jdk1.7,則會出現如下錯誤:?
?
這個就是本博客一開始中說的jdk版本和Hikari的版本要對應上。此錯誤只需要將JDK換成1.8即可。
轉載于:https://www.cnblogs.com/summary-2017/p/7815906.html
總結
以上是生活随笔為你收集整理的SpringBoot中使用hikariCP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [python]练习之递归和循环实现斐波
- 下一篇: 实践篇:利用函数计算轻松构建全文检索系统