今天小翔又get到一个新的知识点,原来mapper的扫描还可以这样配置。这也源于一个报错。
说起这个报错
APPLICATION FAILED TO START
Description:
Field statisticFieldMapper in com.guoke.m.data.controller.web.StatisticFieldController required a bean of type ‘com.guoke.m.data.mapper.statistics.StatisticFieldMapper’ that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type ‘com.guoke.m.data.mapper.statistics.StatisticFieldMapper’ in your configuration.
光看报错信息,就知道是扫描包出了问题,那么就需要看你的扫描包的配置是否扫到你的包,或者你创建的包或者文件是否在你配置的扫描路径下。
类似于https://blog.csdn.net/king101125s/article/details/104166320这些解决方案。
但是这对我来说根本没有用。
那么将我的文件移动到别人创建的包中呢?是否可以成功,当然,成功了。难道是我创建的包名称有问题,使用了关键字?–》更改包名称,再次启动,然而,不行。于是。。求助我老大,
老大老大,永远最大。他就是最胖的。……o
让我来带你康康,出问题的原因。
通常我们的mapper层扫描包是这样的
mapper的包是这样建的
然而。。。令我惊奇的是还可以这样
采用主从的形式。那么配置文件中
再来看看mapper.xml
依旧是主从,主中查询
从包中
哇偶哇偶!真是大开眼见。
优点
这样做的目的是将主数据源与其余数据源分开,也就是分层次,这样方便与查找与编写,无论开发者是新手还是老油条都一目了然。防止乱建乱放。
使用场景
适用于数据管理系统。将本系统的主数据来源(也就是本系统的数据库)与其他系统的数据来源(其他数据库)隔离开来,更好的施行跨库查询。
接下来我就需要认知到我所需要查找的表信息需不需要跨库查询,不需要的放在master层级下,需要的放在slaver层级下。然后将mapper包放到指定位置。
再次重启,成功。
希望我的错误更正能帮到你。
每一次的进步都藏在点滴之间。祝小翔和每个人都加油,加油加加油。