本文介绍了@MapperScan扫描包的问题
文章目录概要本文总结
概要
必须引用mybatis-spring-boot-starter 否则,扫描将无法启用。 可以用mybatis-plus的mybatis-plus-boot-starter代替。
在网上搜索映射扫描时,大多数情况下,basePackage规范会扫描多个软件包。 本身没有问题,但不是完美的方案。 理由如下。
(1)如果扫描的包名是一个较顶级的,那么,一些不是 mapper 的 interface 也会被处理成 mapper 而被创建成一个 spring bean,造成系统无法启动,这肯定不行
)2)虽然只缩小数据包范围,最好只配置映射器对应的数据包,但是罗列包括映射器在内的所有数据包,也会有不足。
第一,名单会很长。 通配符可以解决部分问题,但软件包必须满足统一的规则。 另外,在层次不同的情况下,很难应对。 第二,每次添加或调整映射器包时都会在@MapperScan中注册,从而降低可扩展性。 业务代码的更改会影响框架性代码。 这个问题越来越模糊,特别是在多模块的情况下。 谁认为需要配置@MapperScan才能大量引用单个模块? 其三,与依赖原则相反,本来框架不依赖业务,但现在变成了框架,反而根据业务的变化来调整代码。 如果不想在数据层的每个接口上写@Mapper注释,可以使用直通格式扫描Mapper
本文总结分析了以下@MapperScan扫描数据包的问题。