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
使用上面这种方式在任何情况下都是最有效的。