最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于springboot配置druid數(shù)據(jù)源不生效問題(踩坑記)

 更新時間:2021年09月25日 10:07:50   作者:九天漩女  
今天日常跟著網(wǎng)課學(xué)習,學(xué)到了整合druid數(shù)據(jù)源,遇到了好幾個坑,希望這篇文章可以幫助一些和我一樣踩坑的人

pom文件

如果你的springboot項目要用到druid,那么這三個依賴必不可少:

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!--Druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.12</version>
        </dependency>
        <!--log4j-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

我踩到的第一個坑就踩到這了。當時我沒有引入druid-spring-boot-starter這個依賴,所以在測試的時候就出了問題,最后還是查找了資料才解決。下面踩的坑就更加離譜了。

踩坑經(jīng)歷與解決方案

起初,我的yml配置文件是這樣寫的:

spring:
  datasource:
    username: root
    password: bugeinikan
    url: jdbc:mysql://localhost:3306/2021summer?useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initialSize: 5
      minIdle: 5
      maxActive: 20
      maxWait: 60000
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      poolPreparedStatements: true

這看起來毫無毛病,而且idea也并沒有報錯。
然后我們把數(shù)據(jù)源添加到容器中,DruidConfig類代碼如下:

@Configuration
public class DruidConfig {
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }
}

編寫測試類,測試程類代碼如下:

@SpringBootTest
class ApplicationTests {
    @Autowired
    DataSource dataSource;
    @Test
    void contextLoads() throws SQLException {
        System.out.println(dataSource.getClass());
        //獲得連接
        Connection connection =   dataSource.getConnection();
        System.out.println(connection);
        DruidDataSource druidDataSource = (DruidDataSource) dataSource;
        System.out.println("druidDataSource 數(shù)據(jù)源最大連接數(shù):" + druidDataSource.getMaxActive());
        System.out.println("druidDataSource 數(shù)據(jù)源初始化連接數(shù):" + druidDataSource.getInitialSize());
        //關(guān)閉連接
        connection.close();
    }
}

輸出結(jié)果:

class com.alibaba.druid.pool.DruidDataSource
2021-09-24 16:12:52.689 INFO 4408 — [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
com.mysql.cj.jdbc.ConnectionImpl@7b96de8d
druidDataSource 數(shù)據(jù)源最大連接數(shù):8
druidDataSource 數(shù)據(jù)源初始化連接數(shù):0

程序看上去毫無問題,可是輸出的結(jié)果卻與自己設(shè)置的不同。我們再來打斷點具體看一下:

在這里插入圖片描述

可以看到,在yml文件中,對數(shù)據(jù)源的username、password、url和driverClass配置都是生效的。
再往下看:

在這里插入圖片描述

yml文件中,設(shè)置的maxActive和maxWait明明是20和60000,在這里顯示的卻是默認的屬性,這說明我們在yml文件中寫的spring.datasource.druid配置并沒有生效,抱著試一試的態(tài)度,我對yml文件進行了如下的修改:

spring:
  datasource:
    username: root
    password: bugeinikan
    url: jdbc:mysql://localhost:3306/2021summer?useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true

這時,idea就給我報出無法解析,如圖:

在這里插入圖片描述

不管它了,死馬也要當活馬醫(yī),我們啟動測試程序,運行結(jié)果:

class com.alibaba.druid.pool.DruidDataSource
2021-09-24 16:19:45.095 INFO 11428 — [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
com.mysql.cj.jdbc.ConnectionImpl@67e25252
druidDataSource 數(shù)據(jù)源最大連接數(shù):20
druidDataSource 數(shù)據(jù)源初始化連接數(shù):5

這次輸出的居然和我們配置的一樣,在后面的斷點測試中,各項屬性也都和配置的一樣。
不得不說,這次真是被idea坑慘了,剛開始以為是注入失敗的問題,然后還查了很多資料。我的springboot版本是2.5.4,希望這個文章可以幫助那些和我一樣踩坑的人。

到此這篇關(guān)于springboot配置druid數(shù)據(jù)源不生效問題的文章就介紹到這了,更多相關(guān)springboot配置druid數(shù)據(jù)源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Eclipse創(chuàng)建java程序可執(zhí)行jar包教程

    Eclipse創(chuàng)建java程序可執(zhí)行jar包教程

    這篇文章主要為大家分享了Eclipse創(chuàng)建java程序可執(zhí)行jar包教程,具有一定的實用性和參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 新手小白看過來學(xué)JAVA必過IO流File字節(jié)流字符流

    新手小白看過來學(xué)JAVA必過IO流File字節(jié)流字符流

    這篇文章主要介紹了新手小白學(xué)JAVA到IO流File字節(jié)流字符流的重點,對流不清楚的新手同學(xué)快進來學(xué)習吧,大佬也可以進來溫故一下
    2021-08-08
  • JAVA中常用的設(shè)計模式:單例模式,工廠模式,觀察者模式

    JAVA中常用的設(shè)計模式:單例模式,工廠模式,觀察者模式

    設(shè)計模式(Design pattern)代表了最佳的實踐,通常被有經(jīng)驗的面向?qū)ο蟮能浖_發(fā)人員所采用。設(shè)計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。這些解決方案是眾多軟件開發(fā)人員經(jīng)過相當長的一段時間的試驗和錯誤總結(jié)出來的。
    2020-04-04
  • springboot2.6.4集成swagger3.0遇到的坑及解決方法

    springboot2.6.4集成swagger3.0遇到的坑及解決方法

    這篇文章主要介紹了springboot2.6.4如何集成swagger3.0,在集成的過程中遇到很多問題,本文給大家分享四種問題及相應(yīng)的解決方案,需要的朋友可以參考下
    2022-03-03
  • Java Synchronized鎖失敗案例及解決方案

    Java Synchronized鎖失敗案例及解決方案

    這篇文章主要介紹了Java Synchronized鎖失敗案例及解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-04-04
  • 淺談Java8新特性Predicate接口

    淺談Java8新特性Predicate接口

    這篇文章主要介紹了淺談Java8新特性Predicate接口,文中有非常詳細的代碼示例,對正在學(xué)習java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java webSerivce的使用看完你就明白了

    Java webSerivce的使用看完你就明白了

    因為前段時間,需要使用到webService來調(diào)用公司的其他系統(tǒng)api接口,但是請求方式和我熟知的http請求不一樣,是基于soap協(xié)議來傳輸xml數(shù)據(jù)格式,請求的參數(shù)極其復(fù)雜,需要封裝多層xml數(shù)據(jù)格式,并且我不知道對方的api接口是什么語言,甚至不知道他們存在于什么平臺
    2022-03-03
  • 簡述Java編程語言對象的容納

    簡述Java編程語言對象的容納

    這篇文章主要對Java編程思想中對象的容納進行了一個總體的介紹,具有一定的參考價值,需要的朋友可以了解下。
    2017-09-09
  • java開發(fā)https請求ssl不受信任問題解決方法

    java開發(fā)https請求ssl不受信任問題解決方法

    這篇文章主要介紹了java開發(fā)https請求ssl不受信任問題解決方法,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Spring Boot 3.0升級指南

    Spring Boot 3.0升級指南

    這篇文章主要為大家介紹了Spring Boot 3.0升級指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02

最新評論

衢州市| 天长市| 金坛市| 苍溪县| 宁德市| 乌拉特后旗| 教育| 扎赉特旗| 南宁市| 商河县| 梧州市| 孟津县| 武山县| 建宁县| 周口市| 潮州市| 德庆县| 永福县| 惠来县| 宜城市| 民权县| 成武县| 洞头县| 扶绥县| 清新县| 济南市| 吴桥县| 扶风县| 罗田县| 青岛市| 新乐市| 师宗县| 潢川县| 即墨市| 乌拉特前旗| 天镇县| 张掖市| 海阳市| 丁青县| 凤台县| 交城县|