48 lines
1.6 KiB
Java
48 lines
1.6 KiB
Java
package com.newyetai.mybatis.config;
|
||
|
||
import java.util.List;
|
||
|
||
import org.apache.ibatis.session.SqlSessionFactory;
|
||
import org.apache.ibatis.type.TypeHandlerRegistry;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.context.annotation.Configuration;
|
||
|
||
import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
|
||
import com.newyetai.mybatis.handle.BaseEnumTypeHandler;
|
||
import com.newyetai.mybatis.interceptor.MyPageInterceptor;
|
||
|
||
import lombok.extern.slf4j.Slf4j;
|
||
|
||
/**
|
||
* @author guhong
|
||
* @date 2019/8/19
|
||
* 设置mapper扫描的包
|
||
*/
|
||
@Configuration
|
||
@Slf4j
|
||
public class MybatisConfig {
|
||
|
||
@Autowired
|
||
private List<SqlSessionFactory> sqlSessionFactoryList;
|
||
|
||
/**
|
||
* 添加自定义的分页插件,pageHelper 的分页插件PageInterceptor是用@PostConstruct添加的,自定义的应该在其后面添加
|
||
* 真正执行时顺序是反过来,先执行MyPageInterceptor,再执行 PageInterceptor
|
||
*
|
||
* 所以要保证 PageHelperAutoConfiguration 先执行
|
||
*/
|
||
@Autowired
|
||
public void addPageInterceptor(PageHelperAutoConfiguration pageHelperAutoConfiguration) {
|
||
MyPageInterceptor interceptor = new MyPageInterceptor();
|
||
for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) {
|
||
sqlSessionFactory.getConfiguration().addInterceptor(interceptor);
|
||
log.info("注册自定义分页插件成功");
|
||
// 取得类型转换注册器
|
||
TypeHandlerRegistry typeHandlerRegistry = sqlSessionFactory.getConfiguration().getTypeHandlerRegistry();
|
||
// 注册默认枚举转换器
|
||
typeHandlerRegistry.setDefaultEnumTypeHandler(BaseEnumTypeHandler.class);
|
||
}
|
||
}
|
||
|
||
}
|