记录一个在开发中遇到的问题,一个空项目集成多个其他项目,由于这多个项目中出现了同名类,这时启动时报同名类冲突如下
一.尝试解决方案
1.试用CompentScan excludeFilters
结果还是报错
这时产生怀疑
接着不停的百度,终于找到了相应的文章https://www.jianshu.com/p/2cabfb1975c7,看完后我猜测是不是这样一个情况:引入的项目A中启动类造成的,因为该类上也携带了@CompentScan注解,并且引入的A项目和B项目中都有名字为MybatisPlusConfig的类,空项目又引入了这两个项目,都包含了这两个类,然后空项目启动时相当于加载了两次MybatisPlusConfig类(1次是A的启动类携带的@CompentScan注解,第2次是空项目启动类携带的@CompentScan注解),接下来在空项目的启动类中排除A项目的启动类验证(去掉A的启动类的加载)。
2.验证
排除A项目的启动类A
这是发现还是报错,因为虽然排除了启动类A,但是当前空项目中还是存在两个相同的名称的类,接下来再排除A项目中的MybatisPlusConfig类
这时发现又报mapper类找不到(A项目中的)
这时在空项目中启动类上加上@MapperScan(A项目中mapper类包名 )问题得到解决项目成功启动。