package com.zhushoumao.springboot.config; import java.util.Properties; import javax.sql.DataSource; import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import com.github.pagehelper.PageHelper; import com.google.code.shardbatis.plugin.ShardPlugin; @Configuration public class MyBatisConfig { @Autowired DataSource dataSource; @Bean(name = "sqlSessionFactory") public SqlSessionFactory sqlSessionFactoryBean() { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setTypeAliasesPackage("com.zhushoumao.springboot.pojo"); /** 分页插件begin **/ PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); properties.setProperty("reasonable", "true"); properties.setProperty("supportMethodsArguments", "true"); properties.setProperty("returnPageInfo", "check"); properties.setProperty("params", "count=countSql"); pageHelper.setProperties(properties); /** 分页插件end **/ /** 分表插件begin **/ ShardPlugin shardPlugin = new ShardPlugin(); Properties shardProperties = new Properties(); shardProperties.setProperty("shardingConfig", "sharding_config.xml"); shardPlugin.setProperties(shardProperties); /** 分表插件end **/ // 添加插件 bean.setPlugins(new Interceptor[] { shardPlugin, pageHelper }); // 添加XML目录 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); try { bean.setMapperLocations(resolver.getResources("classpath:com/zhushoumao/springboot/mapper/*.xml")); return bean.getObject(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } }