版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1. 如果宿主和被依赖的工程都包含 Swagger.java,整合后会发生冲突,解决办法就是不重名或者直接删除被依赖工程里的文件。
2. 宿主的 Java 进程启动入口需要加上依赖 jar 包的扫描路径,MapperScan 也要加上对应的多个 dao 的包路径:
3. 宿主的 application.properties 文件的 mybatis 的配置的写法比较特别,需要写成:
也就是 classpath*:mapper/*.xml,红色的 star 不能少哦。
总结:
a. SpringBootApplication 负责扫描自己和依赖的包下的对象实例,不然 @Autowired 报错
b. MapperScan 负责自己和依赖的 Mybatis 的 DAO 接口的注册
c. application.properties 的 mapperLocations 则是说明所有应用类加载路径下的 mapper 文件都需要注册
d. 各被依赖的 jar (springboot)工程负责实例化自己的 mapper xml 实例
小记:
网上 【springboot】如何在自己的springboot项目中引用别的springboot项目jar 的第一条就说要删除 Application 啥的,其实是不对的,至少我们需要依赖它帮忙加载依赖的 mapper*.xml 文件,否则就会出现 Invalid bound statement (not found) 错误