MyBatis Starter配置介绍

MyBaits 在不同用法中的配置方式不同,但是所有可配置的属性含义和作用都是相同的,由于 Spring Boot 方式有特殊的配置规范,所以这里将特别介绍。

MyBatis Starter 提供的所有可配置的属性都在 org.mybatis.spring.boot.autoconfigure.MybatisProperties 类中,该类部分代码如下。

public class MybatisProperties {
    public static final String MYBATIS_PREFIX = "mybatis";

    private String configLocation;
    private String[] mapperLocations;
    private String typeAliasesPackage;
    private Class<?> typeAliasesSuperType;
    private String typeHandlersPackage;
    private boolean checkConfigLocation = false;
    private ExecutorType executorType;
    private Class<? extends LanguageDriver> defaultScriptingLanguageDriver;
    private Properties configurationProperties;
    private CoreConfiguration configuration;
}

Spring Boot 可以通过 @ConfigurationProperties 注解自动将配置文件中的属性组装到对象上,这个注解一般都需要配置与属性匹配的前缀,此处前缀为 “mybatis”,因此对 MyBatis 的配置都是以 “mybatis.” 作为前缀的。属性类中的字段如果是驼峰形式的,在配置文件中进行配置时建议改为横杠(-)和小写字母连接的形式,虽然 Spring Boot 仍然能正确匹配驼峰形式的属性,但是支持 Spring Boot 的 IDE 在自动提示时会使用标准的形式,例如 configLocation 在配置时应改写成 mybatis.config-location 的形式。

MybatisProperties 并没有把所有的属性都列举出来,但是这个类提供了一个嵌套的 Configuration 属性,通过这种方式可以直接对 Configuration 对象进行属性配置,例如 settings 中的属性可以按下面的方式进行配置。

mybatis.configuration.lazy-loading-enabled=true
mybatis.configuration.aggressive-lazy-loading=true

基本上大部分的配置都可以通过这种形式去实现,如果遇到不会配置的内容,仍然可以通过 mybatis-config.xml 方式去配置 MyBatis,然后在 Spring Boot 的配置中指定该文件的路径即可,示例如下。

mybatis.config-location=classpath:mybatis-config.xml

使用上面这种方式在任何情况下都是最有效的。