欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用springboot不自動(dòng)初始化數(shù)據(jù)庫(kù)連接池

 更新時(shí)間:2021年09月10日 11:14:17   作者:天已青色等煙雨來(lái)  
這篇文章主要介紹了使用springboot不自動(dòng)初始化數(shù)據(jù)庫(kù)連接池,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

springboot不自動(dòng)初始化數(shù)據(jù)庫(kù)連接池

簡(jiǎn)介

有時(shí)候我們想自己動(dòng)態(tài)的初始化數(shù)據(jù)庫(kù)連接池,但是springboot 的@SpringBootApplication注解會(huì)自動(dòng)去初始化數(shù)據(jù)庫(kù)連接池,不配置的話會(huì)啟動(dòng)失敗,如下提示

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Dbcp2.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.commons.dbcp2.BasicDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
INFO - Unregistering JMX-exposed beans on shutdown

解決方案

辦法就是排除自動(dòng)初始化的類

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class Application implements CommandLineRunner {
...
}

加上這么一句

(exclude = {DataSourceAutoConfiguration.class})

就可以跳過(guò)數(shù)據(jù)庫(kù)的自動(dòng)初始化,自己為所欲為了~

記錄下spring boot關(guān)于數(shù)據(jù)庫(kù)連接池的一個(gè)小坑

環(huán)境:spring boot 1.5、JDK1.8

application.properties配置

# 驅(qū)動(dòng)配置信息
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/mealsystem?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver

#連接池的配置信息
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.filters=stat,wall,log4j
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

先找到這個(gè)類

org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder

在下面的源碼中打個(gè)斷點(diǎn)

public DataSource build() {
        Class<? extends DataSource> type = this.getType();
        DataSource result = (DataSource)BeanUtils.instantiate(type);
        this.maybeGetDriverClassName();
        this.bind(result);
        return result;
    }

啟動(dòng)項(xiàng)目

這里寫(xiě)圖片描述

我們可以發(fā)現(xiàn),在沒(méi)有配置spring.datasource.type時(shí),spring boot默認(rèn)的連接池是tomcat-jdbc

也就是說(shuō)我們?cè)赼pplication.properties中配置的連接池參數(shù)是無(wú)效的。

好,那我們?cè)倥渲孟逻@個(gè)屬性,使用阿里巴巴的druid

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

再啟動(dòng)下

這里寫(xiě)圖片描述

再來(lái)看看1.5版本org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder的源碼

private static final String[] DATA_SOURCE_TYPE_NAMES = new String[] {
            "org.apache.tomcat.jdbc.pool.DataSource",
            "com.zaxxer.hikari.HikariDataSource",
            "org.apache.commons.dbcp.BasicDataSource", // deprecated
            "org.apache.commons.dbcp2.BasicDataSource" };
  • spring boot 1.5的版本默認(rèn)連接池為tomcat-jdbc
  • spring boot 2.0的版本默認(rèn)連接池為HikariCP

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java配置win10環(huán)境變量過(guò)程圖解

    Java配置win10環(huán)境變量過(guò)程圖解

    這篇文章主要介紹了Java配置win10環(huán)境變量過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • MybatisPlus搭建項(xiàng)目環(huán)境及分頁(yè)插件

    MybatisPlus搭建項(xiàng)目環(huán)境及分頁(yè)插件

    Mybatis-Plus(簡(jiǎn)稱MP)是一個(gè)Mybatis的增強(qiáng)工具,在Mybatis的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生,下面這篇文章主要給大家介紹了關(guān)于MybatisPlus搭建項(xiàng)目環(huán)境及分頁(yè)插件的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • spring-boot-maven-plugin:unknown的完美解決方法

    spring-boot-maven-plugin:unknown的完美解決方法

    這篇文章主要介紹了spring-boot-maven-plugin:unknown的完美解決方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • java對(duì)象類型轉(zhuǎn)換和多態(tài)性(實(shí)例講解)

    java對(duì)象類型轉(zhuǎn)換和多態(tài)性(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇java對(duì)象類型轉(zhuǎn)換和多態(tài)性(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • SpringBoot+WebSocket實(shí)現(xiàn)IM及時(shí)通訊的代碼示例

    SpringBoot+WebSocket實(shí)現(xiàn)IM及時(shí)通訊的代碼示例

    項(xiàng)目中碰到需要及時(shí)通訊的場(chǎng)景,使用springboot集成websocket,即可實(shí)現(xiàn)簡(jiǎn)單的及時(shí)通訊,本文介紹springboot如何集成websocket、IM及時(shí)通訊需要哪些模塊、開(kāi)發(fā)和部署過(guò)程中遇到的問(wèn)題、以及實(shí)現(xiàn)小型IM及時(shí)通訊的代碼,需要的朋友可以參考下
    2023-10-10
  • MyBatis獲取插入記錄的自增長(zhǎng)字段值(ID)

    MyBatis獲取插入記錄的自增長(zhǎng)字段值(ID)

    本文分步驟給大家介紹了MyBatis獲取插入記錄的自增長(zhǎng)字段值的方法,在文中給大家提到了mybatis返回插入數(shù)據(jù)的自增長(zhǎng)id,需要的朋友可以參考下
    2017-11-11
  • jpa?onetomany?使用級(jí)連表刪除被維護(hù)表數(shù)據(jù)時(shí)的坑

    jpa?onetomany?使用級(jí)連表刪除被維護(hù)表數(shù)據(jù)時(shí)的坑

    這篇文章主要介紹了jpa?onetomany?使用級(jí)連表刪除被維護(hù)表數(shù)據(jù)時(shí)的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Maven版本沖突的三種解決方法

    Maven版本沖突的三種解決方法

    在Maven項(xiàng)目中,依賴傳遞可能導(dǎo)致Jar包版本沖突,常見(jiàn)的解決策略包括依賴排除、版本鎖定和使用maven-shade-plugin插件,本文就來(lái)介紹一下這三種解決方法,感興趣的可以了解一下
    2024-10-10
  • java實(shí)現(xiàn)基于UDP協(xié)議的聊天小程序操作

    java實(shí)現(xiàn)基于UDP協(xié)議的聊天小程序操作

    UDP是與TCP相對(duì)應(yīng)的協(xié)議,UDP適用于一次只傳送少量數(shù)據(jù)、對(duì)可靠性要求不高的應(yīng)用環(huán)境。正因?yàn)閁DP協(xié)議沒(méi)有連接的過(guò)程,所以它的通信效率高;但也正因?yàn)槿绱?,它的可靠性不如TCP協(xié)議高,本文給大家介紹java實(shí)現(xiàn)基于UDP協(xié)議的聊天小程序操作,感興趣的朋友一起看看吧
    2021-10-10
  • Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用詳解

    Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用詳

    這篇文章主要介紹了Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論