记录一下mybatis-spring-boot-starter配置mybatis插件.
以前使用mybatis的自定义插件的时候都是使用xml的配置形式来配置,现在使用starter的时候突然一下不知道怎么配置了,这里记录一下怎么配置mybatis的插件。
参考链接
使用starter
现在使用springboot项目引入组件基本都是使用starter的形式来引用了。
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
mybatis-spring-boot-autoconfigure的使用手册
开始以为使用starter加载插件应该也是在配置文件里面配置,找到一个属性是这样的,有一个这样的属性,这个interceptors是一个集合,点击想对应的方法看源码对应是get方法
mybatis.configuration.interceptors对应的方法是这个,这是一个get方法,一般是设置属性都是对应的set方法,所以这里如果配置了之后是启动不起来的,会报类型转换错误。
public List<Interceptor> getInterceptors() {
return interceptorChain.getInterceptors();
}
正确的使用方法
文档上面的介绍是这样的,只要把插件拦截器配置成一个bean就可以了,mybatis-starter会自动加载的。
代码
定义一个Configuration,这个Configuration会被springboot加载到就可以的,SqlCostInterceptor就是自己写大插件拦截器。
package com.madman.springbootdemo.mybatisInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisConfiguration {
@Bean
SqlCostInterceptor myInterceptor() {
return new SqlCostInterceptor();
}
}
使用ConfigurationCustomizer来自定义加载
这个可以参考最上面那个链接,就是实现这个接口的方法,然后把他加载成bean就可以。