
top.lshaci.framework.mybatis.config.MybatisPlusConfig Maven / Gradle / Ivy
The newest version!
package top.lshaci.framework.mybatis.config;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import top.lshaci.framework.mybatis.properties.FrameworkMybatisProperties;
/**
* Mybatis plus config
*
* 1.0.3: 添加SQL执行效率插件Bean配置
* 1.0.7: 升级mybatis plus3.3.1版本, 官方删除SQL执行效率插件Bean配置; 推荐使用第三方插件https://mybatis.plus/guide/p6spy.html
* 1.0.8: 字段注入修改为构造器注入,修改mybatis plus插件配置
*
* @author lshaci
* @version 1.0.8
* @since 1.0.2
*/
@Slf4j
@Configuration
@AllArgsConstructor
@EnableConfigurationProperties(FrameworkMybatisProperties.class)
public class MybatisPlusConfig {
private final FrameworkMybatisProperties properties;
/**
* 配置mybatis plus 插件
*
* @return mybatis plus 插件
*/
@Bean
public MybatisPlusInterceptor MybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
if (properties.getPagination().isEnabled()) {
log.debug("Config mybatis plus pagination interceptor.");
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
paginationInnerInterceptor.setMaxLimit(properties.getPagination().getLimit());
paginationInnerInterceptor.setOverflow(properties.getPagination().isOverflow());
interceptor.addInnerInterceptor(paginationInnerInterceptor);
}
if (properties.getOptimisticLocker().isEnabled()) {
log.debug("Config mybatis plus optimistic locker interceptor.");
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
}
return interceptor;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy