亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Springboot3整合Mybatis-plus3.5.3報(bào)錯(cuò)問題解決

 更新時(shí)間:2023年11月06日 09:45:36   作者:LeoToJavaer  
在日常學(xué)習(xí)springboot3相關(guān)的代碼時(shí),在使用 SpringBoot3 整合 MyBatisplus 時(shí)出現(xiàn)了一些問題,花了不少時(shí)間處理,這篇文章主要介紹了Springboot3整合Mybatis-plus3.5.3報(bào)錯(cuò)問題解決,需要的朋友可以參考下

1.前言背景

最近在學(xué)習(xí)SpringBoot3相關(guān)的的代碼,開發(fā)過程中遇到了一些小坑,不過很快都解決了。然后就用 SpringBoot3 版本寫了幾個(gè)小 demo,比如 Web 開發(fā)、連接 數(shù)據(jù)庫、使用 JdbcTemplate 操作數(shù)據(jù)庫,編碼和測(cè)試都非常順利,雖然是從 SpringBoot 2.x 版本升級(jí)到SpringBoot3,但是沒有感覺到太多差別。

不過,在使用 SpringBoot3 整合 MyBatisplus 時(shí)出現(xiàn)了一些問題,花了不少時(shí)間處理。

2.開發(fā)環(huán)境

因?yàn)檫@邊想學(xué)習(xí)一下關(guān)于SprigBoot3的一些特性,我這里是從原來的SpringBoot2.3.6升級(jí)到了SpringBoot3.0。

使用的版本如下所示。

Spring Boot 版本配置

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.3</version>
</parent>

MyBatis 版本配置

<!--mybatis-plus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3</version>
</dependency>

3.問題出現(xiàn)

當(dāng)一切都配置完成之后,啟動(dòng)項(xiàng)目之后,直接報(bào)錯(cuò),這里直接把報(bào)錯(cuò)相關(guān)的貼出來。

當(dāng)然,異常信息挺多,比如無法創(chuàng)建 Bean 的異常等等,不過上面的幾個(gè)異常并不是問題主因。這里我直接定位到最后的異常上,異常信息是:

Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

于是我們跟入代碼發(fā)生異常的地方。

問題原因也很明顯,sqlSessionTemplate 對(duì)象是空的,所以這邊就直接報(bào)錯(cuò)了。

4.問題排查

當(dāng)然,由于把 SpringBoot 版本升級(jí)到 3 了,所以會(huì)覺得有很大的可能是版本升級(jí)導(dǎo)致了問題。

不過還是想自己查查問題,就依次檢查了代碼、數(shù)據(jù)庫配置、MyBatisPlus 配置,都沒有發(fā)現(xiàn)哪里寫錯(cuò)了,接著就沒頭緒了。之后就通過源碼Debug了一下,順著啟動(dòng)流程走了一下,在SqlSessionFactoryBean這里發(fā)現(xiàn)了問題,NestedIOException這個(gè)類爆紅了,正常情況下肯定是不會(huì)報(bào)錯(cuò)的。

說明肯定是因?yàn)槲覀?strong>dataSource數(shù)據(jù)源的問題,于是我又重新檢查了一下代碼。最終在啟動(dòng)類發(fā)現(xiàn)了問題。

下面我貼出截圖

image-20231104003243998

在SpringBoot應(yīng)用程序啟動(dòng)類上加上(exclude = {DataSourceAutoConfiguration.class})會(huì)排除數(shù)據(jù)源的自動(dòng)配置,這意味著我們需要手動(dòng)配置數(shù)據(jù)源和事務(wù)管理器等依賴項(xiàng)。

如果使用MyBatis等持久層框架進(jìn)行數(shù)據(jù)庫操作,通常需要進(jìn)行以下兩個(gè)步驟:

  • 配置數(shù)據(jù)源:在配置文件中設(shè)置數(shù)據(jù)庫連接信息,例如連接URL、用戶名、密碼等。
  • 配置SqlSessionFactory和SqlSessionTemplate:這兩個(gè)對(duì)象是MyBatis框架中用于操作數(shù)據(jù)庫的核心組件。SqlSessionFactory用于創(chuàng)建SqlSession實(shí)例,SqlSessionTemplate是對(duì)SqlSession的一種封裝,提供了更加簡(jiǎn)單易用的API接口。

如果SqlSessionTemplate對(duì)象為空,可能有以下幾種原因:

  • 沒有正確配置數(shù)據(jù)源:如果我們沒有正確配置數(shù)據(jù)源,SqlSessionFactory和SqlSessionTemplate就無法正常創(chuàng)建。需要確保配置文件中的數(shù)據(jù)庫連接信息正確,并且已經(jīng)將數(shù)據(jù)源和事務(wù)管理器納入到Spring容器中。
  • 沒有正確配置SqlSessionFactory和SqlSessionTemplate:即使我們已經(jīng)正確配置了數(shù)據(jù)源和事務(wù)管理器,但是如果沒有正確配置SqlSessionFactory和SqlSessionTemplate,也會(huì)導(dǎo)致SqlSessionTemplate對(duì)象為空。需要檢查一下SqlSessionFactory是否已經(jīng)成功創(chuàng)建,并且使用了正確的MyBatis配置文件。
  • 沒有將SqlSessionTemplate納入到Spring容器中:在Spring Boot應(yīng)用程序中,我們需要將SqlSessionTemplate對(duì)象納入到Spring容器中,這樣才能在其他組件中自動(dòng)注入SqlSessionTemplate對(duì)象。需要確保已經(jīng)在配置文件中正確配置了MyBatis相關(guān)的Bean,并且使用了正確的注解或XML配置方式來將SqlSessionTemplate納入到Spring容器中。

需要注意的是,這里所說的原因并不全面,具體問題需要根據(jù)實(shí)際情況來進(jìn)行排查分析。

我這里把這個(gè)注釋掉之后,項(xiàng)目就正常啟動(dòng)了,大家可以參考一下。

5.總結(jié)

到此這篇關(guān)于Springboot3整合Mybatis-plus3.5.3報(bào)錯(cuò)的文章就介紹到這了,更多相關(guān)Springboot整合Mybatis-plus報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之排序算法

    Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之排序算法

    排序算法是《數(shù)據(jù)結(jié)構(gòu)與算法》中最基本的算法之一。排序算法可以分為內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存
    2022-02-02
  • 一定要讓你搞懂Java位運(yùn)算符

    一定要讓你搞懂Java位運(yùn)算符

    這篇文章主要為大家介紹了Java位運(yùn)算符,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • springboot+vue實(shí)現(xiàn)oss文件存儲(chǔ)的示例代碼

    springboot+vue實(shí)現(xiàn)oss文件存儲(chǔ)的示例代碼

    對(duì)象存儲(chǔ)服務(wù)是一種海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù),本文主要介紹了springboot+vue實(shí)現(xiàn)oss文件存儲(chǔ)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 關(guān)于JwtToken使用-重點(diǎn)看一下過期時(shí)間

    關(guān)于JwtToken使用-重點(diǎn)看一下過期時(shí)間

    這篇文章主要介紹了關(guān)于JwtToken使用-重點(diǎn)看一下過期時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • SpringBoot部署SSL證書(JKS格式)

    SpringBoot部署SSL證書(JKS格式)

    文將介紹如何在Spring Boot應(yīng)用中部署SSL證書,以實(shí)現(xiàn)安全傳輸和保護(hù)數(shù)據(jù)隱私,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 詳解Java中Collections.sort排序

    詳解Java中Collections.sort排序

    Comparator是個(gè)接口,可重寫compare()及equals()這兩個(gè)方法,接下來通過本文給大家介紹Java中Collections.sort排序,需要的的朋友參考下吧
    2017-04-04
  • Spring @RestController注解組合實(shí)現(xiàn)方法解析

    Spring @RestController注解組合實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Spring @RestController注解組合實(shí)現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • PC 端微信掃碼注冊(cè)和登錄實(shí)例

    PC 端微信掃碼注冊(cè)和登錄實(shí)例

    這篇文章主要介紹了PC 端微信掃碼注冊(cè)和登錄實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 淺談StringBuilder類的capacity()方法和length()方法的一些小坑

    淺談StringBuilder類的capacity()方法和length()方法的一些小坑

    這篇文章主要介紹了StringBuilder類的capacity()方法和length()方法的一些小坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 布隆過濾器詳解以及其在Java中的實(shí)際應(yīng)用

    布隆過濾器詳解以及其在Java中的實(shí)際應(yīng)用

    布隆過濾器是一種數(shù)據(jù)結(jié)構(gòu),比較巧妙的概率型數(shù)據(jù)結(jié)構(gòu)(probabilistic data structure),特點(diǎn)是高效地插入和查詢,這篇文章主要給大家介紹了關(guān)于布隆過濾器詳解以及其在Java中的實(shí)際應(yīng)用,需要的朋友可以參考下
    2023-12-12

最新評(píng)論