MyBatis与SpringBoot的整合集成配置

MyBatis与SpringBoot的集成配置主要通过MyBatis-Spring-Boot-Starter实现,它主要自动化了2部分功能:SqlSessionTemplateSqlSessionFactory的bean实例构建,mapper接口的bean实例构建。其中,SqlSessionFactory的构建过程依赖DataSourceBean,且会读取mybatis.mapper-locations来加载***Mapper.xml的配置文件。

mapper类型的bean创建过程又可以分为2种方式:

  • 通过配置@SpringBootApplication + @Mapper 的方式,该方式依赖sqlSessionFactoryBean 不存在实例,且 @SpringBootApplicationscanBasePackages配置不会被MyBatis扫描,它只会扫描@SpringBootApplication所在类路径,比如下面的代码就只会扫描com.luobobai.test路径下的@Mapper,所以,如果@SpringBootApplication的包路径与@Mapper的包路径存在较大差异的时候,会导致对应的Mapper实例不存在

package com.luobobai.test;

@SpringBootApplication
public class TestApplication {
...
}
  • 通过配置@MapperScan的方式,这种方式将更加的灵活,它也可以通过 markerInterface annotationClass 属性设置标记接口或注解类;从 2.0.4 起,如果 basePackageClasses basePackages 没有定义, 扫描将基于声明这个注解的类所在的包

参考

Comment