基于@MapperScan和@ComponentScan的使用區(qū)別
@MapperScan和@ComponentScan區(qū)別
今天在擼SpringBoot的時(shí)候,突然對(duì)注解產(chǎn)生了混淆,@MapperScan和@ComponentScan都是掃描包,二者之間有什么區(qū)別呢?
首先,@ComponentScan是組件掃描注解,用來掃描@Controller @Service @Repository這類,主要就是定義掃描的路徑從中找出標(biāo)志了需要裝配的類到Spring容器中
其次,@MapperScan 是掃描mapper類的注解,就不用在每個(gè)mapper類上加@MapperScan了
這兩個(gè)注解是可以同時(shí)使用的。
@MapperScan和@ComponentScan使用
報(bào)錯(cuò)如下


原因
當(dāng)@MapperScan和@ComponentScan一起使用時(shí),項(xiàng)目啟動(dòng)時(shí)掃描包會(huì)發(fā)生沖突,找不到swagger配置類的包和mapper接口的包
解決辦法
@MapperScan和@ComponentScan可以一起使用。
改為@MapperScan(basePackages = {})的形式。
或者只使用@MapperScan()去掃描mapper包,讓項(xiàng)目啟動(dòng)自己去掃描swagger配置類的包
課外拓展
@MapperScan
- 1.首先了解@Mapper
- 在持久層的接口上添加@Mapper注解,編譯后會(huì)生成相應(yīng)的接口實(shí)現(xiàn)類,但由于要在每個(gè)接口上都進(jìn)行配置,所以產(chǎn)生了@MapperScan。
- 2.@MapperScan
- 指定要編譯成接口實(shí)現(xiàn)類的包路徑,在編譯完成后這個(gè)包下的所有接口都會(huì)生成相應(yīng)的接口實(shí)現(xiàn)類。
@ComponentScan
- 1.會(huì)自動(dòng)掃描包路徑下的@Controller、@Service、@Repository、@Component類,符合掃描規(guī)則的類會(huì)裝配到spring容器中。
- 2.@MapperScan和@ComponentScan可以同時(shí)使用
如果@MapperScan和@ComponentScan掃描的是同一路徑會(huì)產(chǎn)生錯(cuò)誤,所以
@MapperScan(basePackages = { "com" })
@SpringBootApplication
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring-cloud Config Server的3種配置方式
這篇文章主要介紹了Spring-cloud Config Server的3種配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
java常見報(bào)錯(cuò):Array?Out?of?Bounds兩種解決辦法
這篇文章主要給大家介紹了關(guān)于java報(bào)錯(cuò)Array?Out?of?Bounds的兩種解決辦法,Array out of bounds錯(cuò)誤表示你嘗試訪問數(shù)組中不存在的索引,即索引小于零或者大于等于數(shù)組的大小,文中通過代碼將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
Java中具有映射關(guān)系的容器:數(shù)組和Map的區(qū)別說明
這篇文章主要介紹了Java中具有映射關(guān)系的容器:數(shù)組和Map的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09
SpringBoot整合RabbitMQ及生產(chǎn)全場(chǎng)景高級(jí)特性實(shí)戰(zhàn)
本文主要介紹了SpringBoot整合RabbitMQ及生產(chǎn)全場(chǎng)景高級(jí)特性實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
Springboot中LocalDateTime對(duì)象返回給前端格式化解決方案
在項(xiàng)目開發(fā)當(dāng)中前后端使用什么樣的時(shí)間格式,是一個(gè)值得關(guān)注的問題,這篇文章主要給大家介紹了關(guān)于Springboot中LocalDateTime對(duì)象返回給前端格式化的解決方案,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04

