如何设置MyBatis配置文件mybatis-config.xml中的typeAliasesPackage包扫描?
- 内容介绍
- 相关推荐
本文共计951个文字,预计阅读时间需要4分钟。
MyBatis中的`typeAliasesPackage`配置不是魔法般生效的,它依赖于类路径扫描来识别和加载相应的类。具体来说,它依赖于类加载器和类路径扫描器来找到指定包路径下的所有类。
常见现象是配置了`com.example.model`,但MyBatis没有找到对应的类。这可能是因为:
原因通常是:
- 实际 class 文件没被编译到
target/classes对应路径下(比如 IDE 没自动编译,或 Maven 编译跳过) - 包名拼写错误,尤其大小写敏感(
model≠Model) - 该包在多个 module 中存在,但 MyBatis 加载的是另一个 classloader 下的副本
- Spring Boot 场景下,若用
@MapperScan+ 自动配置,mybatis-config.xml中的typeAliasesPackage可能被忽略(Spring Boot 默认不读这个文件)
Spring Boot 中 typeAliasesPackage 失效?优先用 @MapperScan 或 mybatis.type-aliases-package
Spring Boot 整合 MyBatis 时,mybatis-config.xml 默认不被加载——除非你显式配置了 SqlSessionFactoryBean.configLocation。
本文共计951个文字,预计阅读时间需要4分钟。
MyBatis中的`typeAliasesPackage`配置不是魔法般生效的,它依赖于类路径扫描来识别和加载相应的类。具体来说,它依赖于类加载器和类路径扫描器来找到指定包路径下的所有类。
常见现象是配置了`com.example.model`,但MyBatis没有找到对应的类。这可能是因为:
原因通常是:
- 实际 class 文件没被编译到
target/classes对应路径下(比如 IDE 没自动编译,或 Maven 编译跳过) - 包名拼写错误,尤其大小写敏感(
model≠Model) - 该包在多个 module 中存在,但 MyBatis 加载的是另一个 classloader 下的副本
- Spring Boot 场景下,若用
@MapperScan+ 自动配置,mybatis-config.xml中的typeAliasesPackage可能被忽略(Spring Boot 默认不读这个文件)
Spring Boot 中 typeAliasesPackage 失效?优先用 @MapperScan 或 mybatis.type-aliases-package
Spring Boot 整合 MyBatis 时,mybatis-config.xml 默认不被加载——除非你显式配置了 SqlSessionFactoryBean.configLocation。

