日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot中使用hikariCP

發布時間:2025/7/14 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot中使用hikariCP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章主要實現SpringBoot中使用hikariCP;?
一 、使用工具?
1. JDK1.8?
2. springToolSuit(STS)?
3. maven?
二、創建項目?
1.首先創建一個SpringBoot項目,勾選web,mysql等具體怎樣創建可以參考我的上兩個博客;傳送門?
2.maven 依賴如下:?
1)Java 8 maven artifact:

<dependency><groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>2.6.1</version> <scope>compile</scope> </dependency>

?

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 ,后面的配置類中要用到此名字):

#第一個數據源(多數據源將會在后面介紹,primary表示為第一個數據源) spring.datasource.primary.dataSourceClassName=com.mysql.jdbc.jdbc2.optional.MysqlDataSource spring.datasource.primary.dataSourceProperties.serverName=localhost spring.datasource.primary.dataSourceProperties.portNumber=3306 spring.datasource.primary.dataSourceProperties.databaseName=newrecruit spring.datasource.primary.username=root spring.datasource.primary.password=yourpassword # 下面為連接池的補充設置,應用到上面所有數據源中 #自動提交 spring.datasource.default-auto-commit=true #指定updates是否自動提交 spring.datasource.auto-commit=true spring.jpa.show-sql = true spring.datasource.maximum-pool-size=100 spring.datasource.max-idle=10 spring.datasource.max-wait=10000 spring.datasource.min-idle=5 spring.datasource.initial-size=5 spring.datasource.validation-query=SELECT 1 spring.datasource.test-on-borrow=false spring.datasource.test-while-idle=true # 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 spring.datasource.time-between-eviction-runs-millis=18800 # 配置一個連接在池中最小生存的時間,單位是毫秒 spring.datasource.minEvictableIdleTimeMillis=300000 # Hibernate ddl auto (create, create-drop, update) spring.jpa.hibernate.ddl-auto=update #spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy #spring.jpa.database=org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

?

數據庫配置文件寫好以后,開始寫配置類 :

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”)注解,就可以免去我們自己寫讀取配置文件的麻煩?
第一個數據源的配置類如下:

package com.zlc.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.persistence.EntityManager; import javax.sql.DataSource; import java.util.Map; /** * <p>Company: 信息技術研究所 </p> * @Description: 第一個數據源的配置類 * @Create Date: 2017年5月11日下午9:22:12 * @Version: V1.00 * @Author: 追到烏云的盡頭找太陽 */ @Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef="entityManagerFactoryPrimary", transactionManagerRef="transactionManagerPrimary", basePackages= { "com.zlc.dao" }) //設置Repository所在位置 public class PrimaryDataSouceConfig { @Autowired @Qualifier("primaryDataSource") private DataSource primaryDataSource; @Primary @Bean(name = "entityManagerPrimary") public EntityManager entityManager(EntityManagerFactoryBuilder builder) { return entityManagerFactoryPrimary(builder).getObject().createEntityManager(); } @Primary @Bean(name = "entityManagerFactoryPrimary") public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) { return builder .dataSource(primaryDataSource) .properties(getVendorProperties(primaryDataSource)) .packages("com.zlc.entity") //設置實體類所在位置 .persistenceUnit("primaryPersistenceUnit") .build(); } @Autowired private JpaProperties jpaProperties; private Map<String, String> getVendorProperties(DataSource dataSource) { return jpaProperties.getHibernateProperties(dataSource); } @Primary @Bean(name = "transactionManagerPrimary") public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) { return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject()); } }

?

上面有連個需要注意的地方,一個是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方法如下:

package com.zlc;import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import javax.sql.DataSource; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import com.zaxxer.hikari.HikariDataSource; /** * <p>Company: 信息技術研究所 </p> * @Description: 程序的入口 * @Create Date: 2017年9月14日下午1:11:05 * @Version: V1.00 * @Author: 追到烏云的盡頭找太陽 */ @SpringBootApplication public class RecruitmentApp { public static void main(String[] args) { ApplicationContext applicationContext = SpringApplication.run( RecruitmentApp.class, args); DataSource dataSource = applicationContext.getBean(DataSource.class); System.out.println("datasource is :" + dataSource); //檢查數據庫是否是hikar數據庫連接池 if (!(dataSource instanceof HikariDataSource)) { System.err.println(" Wrong datasource type :" + dataSource.getClass().getCanonicalName()); System.exit(-1); } try { Connection connection = dataSource.getConnection(); ResultSet rs = connection.createStatement() .executeQuery("SELECT 1"); if (rs.first()) { System.out.println("Connection OK!"); } else { System.out.println("Something is wrong"); } // connection.close(); // System.exit(0); } catch (SQLException e) { System.out.println("FAILED"); e.printStackTrace(); System.exit(-2); // TODO: handle exception } } }

?

以上參看了別人的博客,在此謝過,如有侵權,請聯系作者(zlcxmm55@163.com)刪除?
好了,HIkariCP已經配置好了,啟動main;?

完工;這里需要注意的一點,如果是用jdk1.7,則會出現如下錯誤:?
?

這個就是本博客一開始中說的jdk版本和Hikari的版本要對應上。此錯誤只需要將JDK換成1.8即可。

轉載于:https://www.cnblogs.com/summary-2017/p/7815906.html

總結

以上是生活随笔為你收集整理的SpringBoot中使用hikariCP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产人澡人澡澡澡人碰视频 | 成年人精品视频 | 日日夜夜伊人 | 亚洲黄色小说图片 | 夜夜操天天 | 91色漫| 亚洲最新视频 | 中文字幕123 | 2019中文字幕在线免费观看 | 深夜福利视频网站 | 中文字幕一区在线 | 久久三级 | 亚洲午夜色 | 拔插拔插海外华人永久免费 | 亚洲无吗在线 | 亚洲午夜精品久久久久久浪潮 | 黄色日比视频 | 成人毛片视频免费看 | 黄色片免费看 | 操操操操操操操 | 91久久久久国产一区二区 | 欧美一二三 | 日韩av片在线 | 欧美色女人 | 免费无遮挡无码永久视频 | 日日夜夜超碰 | 国产伦精品一区二区三区高清版禁 | 四虎影院一区 | 高清乱码毛片 | 国产精品久久久久久久久久久久久久 | 黄色小说在线观看视频 | 男女做爰猛烈吃奶啪啪喷水网站 | 成人激情在线观看 | 国产精品23p | 国语播放老妇呻吟对白 | 亚洲黄在线| 久久97视频| 国产又黄又猛 | 日批视频免费在线观看 | 深夜久久 | jizz国产在线观看 | 人人色视频 | 男男野外做爰全过程69 | 华人av在线 | 日韩成人免费电影 | 亚洲图片激情小说 | xxxxwww一片| 欧美一级大黄 | 全黄一级男人和女人 | 一区二区精品视频在线观看 | 亚洲一区二区精品视频 | 白丝校花扒腿让我c | 日韩欧美亚洲国产精品字幕久久久 | 亚洲一区二区三区加勒比 | 夜夜看av | 日韩中文字幕网 | 全黄一级男人和女人 | 欧美日韩在线播放视频 | 午夜视频a | 亚洲第一a | 性感美女被草 | 免费一级毛片麻豆精品 | 国产欧美在线观看视频 | 午夜不卡久久精品无码免费 | 日韩精品一区二区三区国语自制 | 国产精品6 | 99久久精品国产毛片 | 自拍欧美日韩 | 免费看国产一级片 | 久久高清一区 | 91秘密入口| 91成人午夜 | 鲁大师私人影院在线观看 | 欧美日韩视频无码一区二区三 | 女性喷水视频 | 色婷婷精品国产一区二区三区 | 成人性生生活性生交全黄 | 老鸭窝视频在线观看 | 国产精品免费一区二区三区在线观看 | av影院在线播放 | 亚欧美精品| 国产精品黑人一区二区三区 | 青青草视频偷拍 | 黄色av网站免费在线观看 | 日日摸天天添天天添破 | 麻豆做爰免费观看 | 一级大片在线观看 | 疯狂做爰高潮videossex | 亚洲一区二区三区四区视频 | 动漫大乳美女 | 狠狠网站 | 久久免费看少妇 | 熊猫av | 亚洲欧美视频在线播放 | 国产精品av网站 | 台湾佬久久 | av在线手机版 | 狂野欧美性猛交免费视频 | 精品国自产拍在线观看 |