package com.stylefeng.guns.config.datasource; import com.alibaba.druid.pool.DruidDataSource; import com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor; import com.baomidou.mybatisplus.plugins.PaginationInterceptor; import com.stylefeng.guns.core.config.properties.DruidProperties; import com.stylefeng.guns.core.datascope.DataScopeInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; /** * 多数据源配置 * * @author stylefeng * @Date 2017/5/20 21:58 */ @Configuration @ConditionalOnProperty(prefix = "guns.muti-datasource", name = "open", havingValue = "false", matchIfMissing = true) @EnableTransactionManagement @MapperScan(basePackages = {"com.stylefeng.guns.modular.*.dao"}) public class SingleDataSourceConfig { /** * 单数据源连接池配置 */ @Bean public DruidDataSource dataSource(DruidProperties druidProperties) { DruidDataSource dataSource = new DruidDataSource(); druidProperties.config(dataSource); return dataSource; } /** * mybatis-plus分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } /** * 数据范围mybatis插件 */ @Bean public DataScopeInterceptor dataScopeInterceptor() { return new DataScopeInterceptor(); } /** * 乐观锁mybatis插件 */ @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } }