中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

@MapperScan和@ComponentScan一塊使用導致沖突的解決方法

發布時間:2021-11-05 17:49:46 來源:億速云 閱讀:1040 作者:柒染 欄目:開發技術

這篇文章給大家介紹@MapperScan和@ComponentScan一塊使用導致沖突的解決方法,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

    @MapperScan和@ComponentScan一塊使用沖突

    項目集成了knief4j

    報錯:

    NoSuchBeanDefinitionException: No qualifying bean of type 'springfox.documentation.schema.TypeNameExtractor'

    很明顯是容器缺少必須的bean,啟動不成功

    解決方案

    方案一

    @MapperScan和@ComponentScan一起使用

    1.建一個配置類

    啟動類不做改變

    package com.test.config;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    @ComponentScan("com.test.bean")
    public class FileNameUtilsConfig {
    }
    方案二

    啟動類做改變,使用@MapperScan一塊掃描

    @MapperScan(basePackages = {"com.test.mapper","com.test.bean"})

    項目中@MapperScan和@Mapper共存之坑XxxMapper that could not be found.

    公司項目有個小伙子將項目的日志功能做了優化。今天在pom添加依賴,在啟動類上加個注解,然后啟動項目突然報了ModuleMapper 找不到。

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    項目一直是好的,又沒有對這個mapper修改。進入ModuleMapper 中發現上面也是有@Mapper注解的

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    可是為什么容器找不到呢,分析一下剛剛修改的才做,引入依賴加注解,問題可能是注解上的問題,注釋掉添加的注解,啟動服務正常運行。罪魁禍首就是這個注解。

    點解注解發現配置類上有個@MapperScan掃描注入。發現這伙計需要操作數據庫。而我接收負責的項目用的是傳統的@Mapper注入。

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    思考:難道在一個項目中@MapperScan和@Mapper不能共存嗎?

    嘗試解決

    自己創建一個springboot 項目,開始用@Mapper 注入容器 啟動程序。程序正常啟動。

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    停掉服務,將mapp文件上的@Mapper刪除 ,將文件移動到mapper文件中,在啟動類上添加@MapperScan 掃包注入。正常啟動。

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    現在測試@MapperScan 和@Mapper 分別在不包中測試一下。現在將UserMapper 放在mapper包中, 將UserTokenMapper 放在mapper2包中并添加@Mapper 啟動測試。

    啟動類:

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    UserMapper :

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    UserTokenMapper :

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    啟動項目報錯:

    Description:

    Field userTokenMapper in com.wyz.yangyang.member.service.impl.MemberServiceImpl required a bean of type ‘com.wyz.yangyang.member.mapper2.UserTokenMapper' that could not be found.

    Action:

    Consider defining a bean of type ‘com.wyz.yangyang.member.mapper2.UserTokenMapper' in your configuration.

    Disconnected from the target VM, address: ‘127.0.0.1:56527', transport: ‘socket'

    Process finished with exit code 1

    @MapperScan和@ComponentScan一塊使用導致沖突的解決方法

    然后我有測試可@MapperScan 掃描的包中不放mapper 文件,mapper2 中mapper文件都添加@Mapper,發現啟動正常。

    又測試了@MapperScan 和@Mapper 同在一個包中,啟動正常。

    在此可以看出 @MapperScan 和@Mapper在不同包中,@Mapper注解失效。

    為了項目快速開發,為了以后更好的兼容,我將項目改為@MapperScan 模式,因為一個注解可以配置多個包路徑。

    關于@MapperScan和@ComponentScan一塊使用導致沖突的解決方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    霍州市| 柏乡县| 柳河县| 南昌县| 酒泉市| 南漳县| 外汇| 武乡县| 青阳县| 德庆县| 边坝县| 乐至县| 荣昌县| 安化县| 闸北区| 台中县| 巴楚县| 武城县| 兴化市| 嵩明县| 灌南县| 乌拉特中旗| 大洼县| 大竹县| 博野县| 阆中市| 卢龙县| 阜南县| 井冈山市| 聂拉木县| 绥芬河市| 潮州市| 班戈县| 剑河县| 荥经县| 庆城县| 五家渠市| 台东县| 灵山县| 通渭县| 湛江市|