springboot+dubbo+mybatis多模块项目invalid boundexception
Posted magnussen1996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot+dubbo+mybatis多模块项目invalid boundexception相关的知识,希望对你有一定的参考价值。
invalid boundexception的原因大抵是因为mybatis扫描不到mapper映射文件(xml),无法将mapper接口类(java)中的接口与mapper映射器绑定起来。这可能是因为target/classes的对应目录下根本就没有mapper的映射文件,也有可能是因为mybatis配置的路径错误。关于mybatis的一些坑可以参考另一篇随笔:
但是还有一种情况,在多模块项目中,dao工程是跟数据库打交道的,那么理论上只要给他在application.properties中配置好mysql和mybatis就OK了吧?非也。在依赖dao工程的service工程中,也要配置mysql和mybatis,否则就有可能出现在dao工程中万事俱备,在service工程中调用dao工程的接口时,仍然会报invalid boundexception,因为service工程当然是依据本工程内的配置文件(注意,专指application.properties)去扫描加载,dao工程配置的再完备也是白搭。用来扫描dao接口的@MapperScan是加在service工程的启动类上,也是差不多的道理。
更进一步的,由上可知dao工程的配置文件其实并没有什么用,可以删掉以避免重复配置(当然dao工程需要的依赖还是要老老实实的引入),在引用方的service工程中配置一次即可。作为不需要启动的工程,配置文件和启动类都可以删掉。
以上是关于springboot+dubbo+mybatis多模块项目invalid boundexception的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot3(springboot_jdbctemplate以及MyBatis和Dubbo整合)
springboot+mybatis+dubbo+aop日志第三篇
SpringBoot-Dubbo-Redis-Mybatis-Jsp-MVC