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

SpringBoot3整合MyBatis出現(xiàn)異常:Property?'sqlSessionFactory'or?'sqlSessionTemplate'?are?required

 更新時(shí)間:2022年11月24日 10:27:34   作者:十三  
這篇文章主要介紹了SpringBoot3整合MyBatis報(bào)錯(cuò):Property?‘sqlSessionFactory‘?or?‘sqlSessionTemplate‘?are?required,其實(shí)不是個(gè)大問題,只是自己編碼時(shí)遇到了,然后總結(jié)總結(jié)分享一下,如果有遇到類似問題的,可以參考一下

SpringBoot3整合MyBatis報(bào)錯(cuò):Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

遇到了一個(gè) Spring Boot 3 整合 MyBatis 的問題,然后解決了。當(dāng)然,這其實(shí)不是個(gè)大問題,只是自己編碼時(shí)遇到了,然后總結(jié)總結(jié)分享一下。如果有遇到類似問題的,可以參考一下。

交代一下背景

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

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

使用的版本如下所示。

Spring Boot 版本配置

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.0-SNAPSHOT</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

MyBatis 版本配置

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>

問題出現(xiàn)

啟動(dòng)時(shí)直接報(bào)錯(cuò),內(nèi)容如下圖所示。

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

Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

跟入發(fā)生異常的地方,代碼截圖如下:

問題原因也很明顯,sqlSessionTemplate 對(duì)象是空的。

問題排查

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

不過還是想自己查查問題,就依次檢查了代碼、數(shù)據(jù)庫(kù)配置、MyBatis 配置,都沒有發(fā)現(xiàn)哪里寫錯(cuò)了,接著就沒頭緒了。之后又看了一下 MyBatis 自動(dòng)配置的源碼,通過 debug 模式看了下是不是有什么問題,在查看源碼的過程中看到一個(gè)有意思的事情,SqlSessionFactoryBean 這個(gè)類直接報(bào)紅了,如下圖所示。

為什么說有意思呢?

正常情況下這個(gè)類肯定不會(huì)報(bào)錯(cuò)的。再去查詢問題,發(fā)現(xiàn) NestedIOException 這個(gè)類在 Spring 6 版本中直接刪除了。對(duì)的,直接刪除了。而 MyBatis 還沒有同步更新,所以直接就報(bào)紅了。

如果真的是版本升級(jí)導(dǎo)致的,還真就暫時(shí)沒法改,只能等 MyBatis 那邊也發(fā)布新版本才行。除了 MyBatis 之外,如果使用 Spring Boot 3 直接整合 MyBatis-Plus 這種框架,那肯定也會(huì)報(bào)錯(cuò)的。

另外,不止是 MyBatis 框架會(huì)出問題。像 Spring 6 這種直接嘎掉一些類的情況,如果其它框架里用到了一些 Spring 框架中的類,恰好也被嘎了。那么,升級(jí)到 Spring6 或者 Spring Boot 3 時(shí),都得注意一下。

解決問題:需要升級(jí)版本

好的,排查自己的代碼沒發(fā)現(xiàn)問題。只有去古狗上看看有沒有解決方案,搜了一圈,在 MyBatis 的開源倉(cāng)庫(kù)里看到了一個(gè)類似問題,解決方案也有,如下圖所示。

對(duì)的,使用 Spring Boot 3 版本整合 MyBatis 時(shí),需要把 mybatis-spring-boot-starter 也升級(jí)。mybatis-spring-boot-starter 2.x 版本暫時(shí)還不適配 Spring Boot 3 版本,沒轍。另外,由于還沒正式發(fā)版,所以需要配置一個(gè)遠(yuǎn)程倉(cāng)庫(kù)。

<dependencies>
    <!-- 引入 3.0.0-SNAPSHOT 版本的 mybatis-spring-boot-starter(未正式發(fā)版) -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>3.0.0-SNAPSHOT</version>
    </dependency>
</dependencies>
<repositories>
    <!-- 由于未正式發(fā)版,所以在Maven倉(cāng)庫(kù)里還搜不到,需要額外配置一個(gè)遠(yuǎn)程倉(cāng)庫(kù) -->
    <repository>
        <id>ossrh</id>
        <name>OSS Snapshot repository</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

總結(jié)

事情不大,本來不想單獨(dú)寫篇文章的,但是我有個(gè)預(yù)感,在項(xiàng)目中升級(jí) Spring Boot 3 時(shí)還會(huì)有其它問題。不知道 Spring6 這次更新了多少東西,連 TM 的MyBatis、MyBatis-Plus 這種常用的框架都中招了。這些就慢慢整理吧,畢竟是大版本升級(jí),難免會(huì)出現(xiàn)不兼容、等依賴更新的情況。確實(shí)沒轍,等更新唄。

如果這篇文章浪費(fèi)了你的時(shí)間,先說聲抱歉,你直接關(guān)掉網(wǎng)頁就好。

因?yàn)榫S護(hù)了幾個(gè) Spring Boot 的開源項(xiàng)目,Spring Boot 3 正式發(fā)版了,我也會(huì)及時(shí)更新版本、升級(jí)這幾個(gè) Spring Boot 實(shí)戰(zhàn)項(xiàng)目。如果碰到了什么問題,也會(huì)及時(shí)分享出來。

項(xiàng)目名稱描述GitHub倉(cāng)庫(kù)地址Gitee倉(cāng)庫(kù)地址
newbee-mallSpring Boot 開源電商實(shí)戰(zhàn)項(xiàng)目(含商城端和后臺(tái)管理系統(tǒng))https://github.com/newbee-ltd/newbee-mallhttps://gitee.com/newbee-ltd/newbee-mall

項(xiàng)目名稱描述GitHub倉(cāng)庫(kù)地址Gitee倉(cāng)庫(kù)地址
My-BlogSpring Boot 開源博客實(shí)戰(zhàn)項(xiàng)目https://github.com/ZHENFENG13/My-Bloghttps://gitee.com/ZHENFENG13/My-Blog

到此這篇關(guān)于SpringBoot3整合MyBatis報(bào)錯(cuò):Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required的文章就介紹到這了,更多相關(guān)SpringBoot3整合MyBatis報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java互斥鎖簡(jiǎn)單實(shí)例

    Java互斥鎖簡(jiǎn)單實(shí)例

    這篇文章主要介紹了Java互斥鎖,較為詳細(xì)的分析了java互斥鎖的概念與功能,并實(shí)例描述了java互斥鎖的原理與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • spring boot+thymeleaf+bootstrap實(shí)現(xiàn)后臺(tái)管理系統(tǒng)界面

    spring boot+thymeleaf+bootstrap實(shí)現(xiàn)后臺(tái)管理系統(tǒng)界面

    這篇文章主要為大家詳細(xì)介紹了spring boot+thymeleaf+bootstrap簡(jiǎn)單實(shí)現(xiàn)后臺(tái)管理系統(tǒng)界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java實(shí)現(xiàn)字節(jié)數(shù)B轉(zhuǎn)化為KB、MB、GB的方法示例【測(cè)試可用】

    Java實(shí)現(xiàn)字節(jié)數(shù)B轉(zhuǎn)化為KB、MB、GB的方法示例【測(cè)試可用】

    這篇文章主要介紹了Java實(shí)現(xiàn)字節(jié)數(shù)B轉(zhuǎn)化為KB、MB、GB的方法,結(jié)合實(shí)例形式分析了java字節(jié)數(shù)的轉(zhuǎn)換運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • java貪吃蛇游戲?qū)崿F(xiàn)代碼

    java貪吃蛇游戲?qū)崿F(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了java貪吃蛇游戲?qū)崿F(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Java寫出生肖年判斷

    Java寫出生肖年判斷

    本篇文章主要給大家分享一篇關(guān)于用JAVA寫出生肖判斷的小功能,有興趣的跟著學(xué)習(xí)下。
    2018-02-02
  • SpringCloud超詳細(xì)講解微服務(wù)網(wǎng)關(guān)Gateway

    SpringCloud超詳細(xì)講解微服務(wù)網(wǎng)關(guān)Gateway

    這篇文章主要介紹了SpringCloud Gateway微服務(wù)網(wǎng)關(guān),負(fù)載均衡,熔斷和限流,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 引入QQ郵箱發(fā)送驗(yàn)證碼進(jìn)行安全校驗(yàn)功能實(shí)現(xiàn)

    引入QQ郵箱發(fā)送驗(yàn)證碼進(jìn)行安全校驗(yàn)功能實(shí)現(xiàn)

    最近遇到這樣的需求用戶輸入自己的郵箱,點(diǎn)擊獲取驗(yàn)證碼,后臺(tái)會(huì)發(fā)送一封郵件到對(duì)應(yīng)郵箱中,怎么實(shí)現(xiàn)呢?下面小編給大家?guī)砹艘隥Q郵箱發(fā)送驗(yàn)證碼進(jìn)行安全校驗(yàn)功能,需要的朋友可以參考下
    2023-02-02
  • 解析Jmeter脫離Jenkins后Ant集成郵件通知問題

    解析Jmeter脫離Jenkins后Ant集成郵件通知問題

    今天來講下本地的ant構(gòu)建并發(fā)送郵件。配置下來挺順利也挺簡(jiǎn)單的,對(duì)Jmeter脫離Jenkins后Ant集成郵件通知問題感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • java 實(shí)現(xiàn)迷宮回溯算法示例詳解

    java 實(shí)現(xiàn)迷宮回溯算法示例詳解

    這篇文章主要介紹了java 實(shí)現(xiàn)迷宮回溯算法示例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java中雙重檢查鎖(double checked locking)的正確實(shí)現(xiàn)

    Java中雙重檢查鎖(double checked locking)的正確實(shí)現(xiàn)

    雙重檢查鎖(Double-Check Locking),顧名思義,通過兩次檢查,并基于加鎖機(jī)制,實(shí)現(xiàn)某個(gè)功能,下面這篇文章主要給大家介紹了關(guān)于Java中雙重檢查鎖(double checked locking)的相關(guān)資料,需要的朋友可以參考下
    2021-09-09

最新評(píng)論