@MapperScan扫描包的问题
本文来说下@MapperScan扫描包的问题
文章目录
- 概述
- 本文小结
概述
必需引用 mybatis-spring-boot-starter, 否则不能扫描生效。可以用 mybatis-plus 的 mybatis-plus-boot-starter 替代。
从网上搜 MapperScan,大部分说是通过 basePackage 指定扫描多个包,本身没问题,但不是一个完美的方案。原因如下:
(1)如果扫描的包名是一个较顶级的,那么,一些不是 mapper 的 interface 也会被处理成 mapper 而被创建成一个 spring bean,造成系统无法启动,这肯定不行。
(2)只有缩小包的范围,最好是只配置 mapper 对应包,但如果把所有包含 mapper 的包罗列出来,则也存在不足。
- 其一,会导致列表变得比较长。用通配符解决一部分问题,但需要包包满足一些统一的规则。另外,对于层级不同的情况,不好处理。
- 其二,则降低了扩展性,因为每增加或调整 mapper 包,都要到 @MapperScan 中去注册。业务代码的变更影响了框架性的代码。尤其是对于多模块的情况,这个问题变得越发隐晦:谁能想到多引用一个模块就需要配置一下 @MapperScan?
- 其三,违背依赖的原则,本来框架不依赖业务,现在变成了框架反过来要因业务变化而调整代码。
如果不想在数据层的每个接口上面写@Mapper 注解,可以使用通配的形式来扫码Mapper
本文小结
本文分析了下@MapperScan扫描包的问题。
@MapperScan扫描包的问题相关推荐
- 实验16:使用context:include-filter指定扫描包时要包含的类 实验17:使用context:exclude-filter指定扫描包时不包含的类
实验17:使用context:exclude-filter指定扫描包时不包含的类 扫描的时候可以排除一些不要的组件 type="annotation" 指定排除规则,按照注解进行排 ...
- 附录 SpringBoot 默认的扫描包是哪个?
Spring Boot 的启动类上标注 @SpringBootApplication 注解 , 其默认扫描包就是启动类所在的包 . 为什么是这样? 我们看看 @SpringBootApplicatio ...
- Spring是如何扫描包的 Spring5.x(源码向)
Spring是如何扫描包的 Spring5.x 锁定这个方法,Spring会在ClassPathScanningCandidateComponentProvider类的这个方法中进行扫描 privat ...
- springboot排除扫描包
springboot排除扫描包 import com.reference.demo.annotation.MyEnableAnnotation; import org.springframework. ...
- SpringBoot扫描包问题
不同包下的配置类使用mapSacn没有扫描到,百度之后在SpringbootApplication后加上scanbasepackages扫描包,可以扫描到,但是导致springboot只扫描了这一个类 ...
- mapperscan扫描不到包问题
查看target包下mapper目录下没有xml文件 在maven里配置资源就可以解决了 <build><plugins><plugin><groupId&g ...
- MapperScan扫描多个包写法
https://blog.csdn.net/u013059432/article/details/80239075
- java 扫描包框架_在Android中实现类似Spring的软件包扫描
我正在尝试为component- scan我正在开发的Android框架实施类似于Spring的软件包扫描功能.基本上,我希望能够指定基本包,例如,com.foo.bar并检索Class具有特定批注的 ...
- java配置文件扫描包_SpringMVC和Spring的配置文件扫描包详解
在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,而在一个项目中,容器不一定只有一个,Spring中可以包括多个容器,而且容器有上下层关系,目前最常见的一种场景 ...
最新文章
- 教你在Linux中如何归档和备份
- BGP边界网关协议线路优势
- 自媒体发展陷入僵局,社群媒体将成出路?呵呵…
- android获得一个view的高度,Android ViewTreeObserver使用总结及获得View高度的几种方法...
- python3.7下载tensorflow_【AI初体验】在anaconda中python3.7版本安装Tensorflow 与 Keras来玩玩...
- 算法题+JVM+自定义View,详细的Android学习指南
- 用友BIP|YonBuilder+APICloud 双平台,“1+1>N”的低代码战略
- ubutnu16.04下Intel Realsense D435驱动的安装和python环境的配置
- leetcode —— 752. 打开转盘锁
- 激光slam_激光SLAM与视觉SLAM,移动机器人核心技术不断升级
- 将数值位转换为字符位后输出
- eclipse上安装并配置tomcat
- 2021 最新版《神经网络和深度学习》中文版.pdf
- VMware网络设置详解 打造超级虚拟网络
- python毕业设计项目源码选题(10)电影院售票系统毕业设计毕设作品开题报告开题答辩PPT
- max7456 C语言,用于MAX7456随屏显示器SPI接口的C程序
- 有源rc电压放大器实验报告_我们一起来认识一下RC反馈回路
- ultraedit编译java_在UltraEdit中编译和运行Java程序
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 待补
- 冲量在线荣获2021中关村国际前沿科技创新大赛TOP10