Closed JeeBlack closed 3 months ago
MyBatis 是一个流行的 Java 持久层框架,它通过 XML 或注解来配置 SQL 映射。在使用 MyBatis 时,可以配置多个 Mapper 接口和对应的 XML 映射文件。Mapper 的加载顺序通常遵循以下规则:
XML 配置文件加载:MyBatis 启动时会加载 mybatis-config.xml 配置文件,这个文件中可以包含多个
Mapper 接口加载:在 mybatis-config.xml 中,可以通过
注解方式加载:如果使用注解方式定义 Mapper,MyBatis 会扫描指定的包路径,查找带有 @Mapper 注解的接口。
加载顺序:MyBatis 首先会加载配置文件中指定的 Mapper XML 文件,然后加载使用注解定义的 Mapper 接口。如果存在同名的 XML 映射和注解定义的 Mapper,MyBatis 会根据配置文件中的
覆盖问题:如果存在多个相同命名的 Mapper 接口或 XML 文件,MyBatis 会按照加载顺序覆盖之前的映射定义。即后加载的映射会覆盖先加载的映射。
优先级问题:在配置文件中指定的
自动扫描:MyBatis 允许通过配置文件中的
缓存机制:MyBatis 会将加载的映射信息缓存起来,以提高性能。这意味着一旦 Mapper 被加载,其映射信息就会被缓存,直到应用程序重新启动。
了解这些加载顺序和规则对于有效管理 MyBatis 项目中的 Mapper 配置非常重要,尤其是在大型项目中,确保映射的正确性和一致性是至关重要的。
AMapper的字段等元数据被存储在BMapper对应的表中,有没有办法优先加载BMapper(泛指一类)