javascript
SpringBoot中使用hikariCP
本篇文章主要實(shí)現(xiàn)SpringBoot中使用hikariCP;?
一 、使用工具?
1. JDK1.8?
2. springToolSuit(STS)?
3. maven?
二、創(chuàng)建項(xiàng)目?
1.首先創(chuàng)建一個(gè)SpringBoot項(xiàng)目,勾選web,mysql等具體怎樣創(chuàng)建可以參考我的上兩個(gè)博客;傳送門(mén)?
2.maven 依賴(lài)如下:?
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依賴(lài)為:
<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 依賴(lài) --> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.0.Final</version> </dependency> <!-- JDBC連接數(shù)據(jù)庫(kù),因?yàn)橐肏ikariCP,所以需要將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 連接池依賴(lài),從父依賴(lài)獲取額版本 --> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <!-- <scope>runtime</scope> --> </dependency> <!-- 因?yàn)榕渲昧藅hymeleaf 模板,可以將此注釋 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> --> <!-- thymeleaf 模板 默認(rèn)包含spring-boot-starter-web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- 連接mysql數(shù)據(jù)庫(kù)驅(qū)動(dòng) --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- spring boot 內(nèi)置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 這個(gè)必須配置jdk的版本號(hào) --> <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需要搭配一個(gè)額外的庫(kù)NekoHTML才可用,解決嚴(yán)格的html驗(yàn)證問(wèn)題 --> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> </dependency> <!-- 單元測(cè)試相關(guān)依賴(lài) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>?
SpringBoot父依賴(lài)如下:
<parent><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>?
這里需要注意的是,因?yàn)橛昧俗钚碌腟pringBoot版本,HikarICP從SpringBoot繼承版本,所以JDK需要配置為1.8,如果不是將會(huì)出現(xiàn)錯(cuò)誤,錯(cuò)誤原因?qū)?huì)在下面展示。?
3.數(shù)據(jù)庫(kù)連接配置文件如下(我將數(shù)據(jù)庫(kù)連接配置單獨(dú)寫(xiě)在了一個(gè)配置文件,這樣找起來(lái)比較清晰,文件名為 datasource.properties ,后面的配置類(lèi)中要用到此名字):
?
數(shù)據(jù)庫(kù)配置文件寫(xiě)好以后,開(kāi)始寫(xiě)配置類(lèi) :
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: 追到烏云的盡頭找太陽(yáng) */ @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("數(shù)據(jù)庫(kù)連接池創(chuàng)建中......."); return DataSourceBuilder.create().build(); } }?
一個(gè)@PropertySource(“classpath:datasource.properties”)注解,就可以免去我們自己寫(xiě)讀取配置文件的麻煩?
第一個(gè)數(shù)據(jù)源的配置類(lèi)如下:
?
上面有連個(gè)需要注意的地方,一個(gè)是JPA所在的包名: basePackages= { “com.b505.dao” }) //設(shè)置Repository所在位置,一定不能寫(xiě)錯(cuò),一個(gè)JPA實(shí)體類(lèi)所在的位置: .packages(“com.b505.entity”) //設(shè)置實(shí)體類(lèi)所在位置。
我們?cè)趍ain方法中我們可以檢查一下(一定要注意SpringBoot項(xiàng)目的結(jié)構(gòu),因?yàn)镾pringBoot是自動(dòng)掃描并注冊(cè)類(lèi)注冊(cè)到Spring的上下文中所以main所在的類(lèi)的包名一定是最大的,這樣用其他注解的類(lèi)才能正常注冊(cè),我的項(xiàng)目結(jié)構(gòu)如下):?
?
如果你的controller寫(xiě)在了com.zlca.web;那么項(xiàng)目編譯不會(huì)產(chǎn)生錯(cuò)誤,但是此web層的映射全都不能用,因?yàn)闆](méi)有注冊(cè)到Spring中。SpringBoot是掃描@SpringBootApplication下的類(lèi)以及此注解的子文件夾下的類(lèi);?
main方法如下:
?
以上參看了別人的博客,在此謝過(guò),如有侵權(quán),請(qǐng)聯(lián)系作者(zlcxmm55@163.com)刪除?
好了,HIkariCP已經(jīng)配置好了,啟動(dòng)main;?
完工;這里需要注意的一點(diǎn),如果是用jdk1.7,則會(huì)出現(xiàn)如下錯(cuò)誤:?
?
這個(gè)就是本博客一開(kāi)始中說(shuō)的jdk版本和Hikari的版本要對(duì)應(yīng)上。此錯(cuò)誤只需要將JDK換成1.8即可。
轉(zhuǎn)載于:https://www.cnblogs.com/summary-2017/p/7815906.html
總結(jié)
以上是生活随笔為你收集整理的SpringBoot中使用hikariCP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [python]练习之递归和循环实现斐波
- 下一篇: 实践篇:利用函数计算轻松构建全文检索系统