MyBatis-Plus配置之 —— 配置冲突

MyBatis-Plus配置

在 SpringBoot 工程中,当使用 yml 文件为 MyBatis-Plus 添加配置时,可能会出现 “配置冲突” 的问题,即:

配置项如下:

# MyBatisPlus配置
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true    #字段与属性,自动转换为驼峰命名
    # ...
  configLocation: classpath:mybatis/mybatis-config.xml
  # 其它配置项

这时因为在 MyBatis-Plus 的配置中,configurationconfigLocation 不能同时使用,这是因为它们的作用存在冲突

原因分析:

  1. configuration
    • 该属性用于直接在 application.ymlapplication.properties 文件中以键值对的形式定义 MyBatis 的配置项。
    • 它允许你通过代码方式动态地配置 MyBatis 的行为,比如是否开启驼峰命名转换(map-underscore-to-camel-case)、是否启用延迟加载等。
  2. configLocation
    • 该属性用于指定一个外部的 MyBatis 配置文件路径(通常是 mybatis-config.xml)。
    • 外部的 XML 配置文件可以包含更复杂的 MyBatis 配置,例如插件配置、类型别名、环境设置等。
  3. 冲突原因:
    • 当你同时配置了 configurationconfigLocation 时,MyBatis-Plus 不知道应该优先使用哪个配置来源。
    • 如果使用了 configLocation,MyBatis 会读取外部的 XML 配置文件,并忽略 configuration 中的配置项。
    • 反之,如果使用了 configuration,MyBatis 会基于这些配置项生成内部的配置对象,并忽略 configLocation 指定的 XML 文件。
posted @ 2025-02-21 22:26  大一点的小孩  阅读(174)  评论(0)    收藏  举报