依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
mybatisplus配置
@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//向Mybatis过滤器链中添加分页拦截器
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.POSTGRE_SQL);
interceptor.addInnerInterceptor(paginationInnerInterceptor);
//还可以添加i他的拦截器
return interceptor;
}
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setUseDeprecatedExecutor(false);
}
@Bean
public EasySqlInjector easySqlInjector () {
return new EasySqlInjector();
}
}
数据源配置
@Configuration
@MapperScan(basePackages = {"com.hikvision.pbg.ljprisonabdoor.modules.mapper.primary"}, sqlSessionTemplateRef = "primarySqlSessionTemplate")
public class PrimaryDataSourceConfig {
@Resource
MybatisPlusConfig mybatisPlusConfig;
@Resource
private MyMetaObjectHandler metaObjectHandler;
@Primary
@Bean(name = "primaryDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "primarySqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml"));
//加载分页配置
bean.setPlugins(mybatisPlusConfig.mybatisPlusInterceptor());
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setSqlInjector(new EasySqlInjector());
globalConfig.setMetaObjectHandler(metaObjectHandler);
bean.setGlobalConfig(globalConfig);
return bean.getObject();
}
@Bean(name = "primaryTransactionManager")
@Primary
public DataSourceTransactionManager transactionManager(@Qualifier("primaryDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "primarySqlSessionTemplate")
@Primary
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("primarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
@Configuration
@MapperScan(basePackages = "com.hikvision.pbg.ljprisonabdoor.modules.mapper.irds", sqlSessionTemplateRef = "irdsSqlSessionTemplate")
public class IrdsDataSourceConfig {
@Resource
MybatisPlusConfig mybatisPlusConfig;
@Bean(name = "irdsDataSource")
@ConfigurationProperties(prefix = "spring.datasource.irds")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "irdsSqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("irdsDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/irds/*.xml"));
bean.setPlugins(mybatisPlusConfig.mybatisPlusInterceptor());
return bean.getObject();
}
@Bean(name = "irdsTransactionManager")
public DataSourceTransactionManager transactionManager(@Qualifier("irdsDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "irdsSqlSessionTemplate")
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("irdsSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}