1.application.properties
spring.datasource.url = jdbc\:mysql\://192.168.1.1\:3306/business?autoRconnect\=true&useUnicode\=true&characterEncoding\=UTF8&zeroDateTimeBehavior\=convertToNull&allowMultiQueries=true spring.datasource.username = root spring.datasource.password = R4ydEq6+eNhAXKnjqn0nGTNTldnaoxuuwkWau+IO1I3FGXvXbH+gRzPlUGnjmgNNwic8PkfqkkKn1IeJ/laspg== spring.datasource.driver-class-name = com.mysql.jdbc.Driver spring.datasource.maxActive = 20 spring.datasource.initialSize = 5 spring.datasource.minIdle = 5 spring.datasource.maxWait = 60000 spring.datasource.timeBetweenEvictionRunsMillis = 60000 spring.datasource.minEvictableIdleTimeMillis = 300000 spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 spring.datasource.validationQuery = SELECT 'x' spring.datasource.testWhileIdle = true spring.datasource.testOnBorrow = false spring.datasource.testOnReturn = false spring.datasource.poolPreparedStatements = true spring.datasource.filters = config,stat spring.datasource.connectionProperties = config.decrypt=true ######################################################## ###STOCK-DB spring.stock.datasource.url = jdbc\:mysql\://192.168.1.1\:3306/stock?autoRconnect\=true&useUnicode\=true&characterEncoding\=UTF8&zeroDateTimeBehavior\=convertToNull&allowMultiQueries=true spring.stock.datasource.username = root spring.stock.datasource.password = R4ydEq6+eNhAXKnjqn0nGTNTlffaoxiPwkWau+IO1I3FGXvXjjjgRzPlUGnjmgNNwic8PkfqBbKn1IeJ/laspg== spring.stock.datasource.driver-class-name = com.mysql.jdbc.Driver spring.stock.datasource.maxActive = 30 spring.stock.datasource.initialSize = 10 spring.stock.datasource.minIdle = 10 spring.stock.datasource.maxWait = 800 spring.stock.datasource.timeBetweenEvictionRunsMillis = 60000 spring.stock.datasource.minEvictableIdleTimeMillis = 300000 spring.stock.datasource.maxPoolPreparedStatementPerConnectionSize=20 spring.stock.datasource.validationQuery = SELECT 'x' spring.stock.datasource.testWhileIdle = true spring.stock.datasource.testOnBorrow = true spring.stock.datasource.testOnReturn = false spring.stock.datasource.poolPreparedStatements = true spring.stock.datasource.filters = config,stat spring.stock.datasource.queryTimeout=2500 spring.stock.datasource.connectionProperties = config.decrypt=true mybatis.config-location = classpath:mybatis/mybatisConfig.xml
2.DruidDBConfig.java
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
@Configuration
public class DruidDBConfig {
private Logger logger=LoggerFactory.getLogger(DruidDBConfig.class);
@Bean(name="dataSource")
@ConfigurationProperties(prefix="spring.datasource")
@Primary
public DataSource dataSource() {
return DataSourceBuilder.create().type(com.alibaba.druid.pool.DruidDataSource.class).build();
}
@Bean(name="sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean=new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/bussiness/*.xml"));
return bean.getObject();
}
@Bean(name="stockDataSource")
@ConfigurationProperties(prefix="spring.stock.datasource")
public DataSource stockDataSource() {
return DataSourceBuilder.create().type(com.alibaba.druid.pool.DruidDataSource.class).build();
}
@Bean(name="stockSqlSessionFactory")
public SqlSessionFactory stockSqlSessionFactory(@Qualifier("stockDataSource") DataSource stockDataSource) throws Exception {
SqlSessionFactoryBean bean=new SqlSessionFactoryBean();
bean.setDataSource(stockDataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/stock/*.xml"));
return bean.getObject();
}
3.MyBatisConfig.java
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.TransactionManagementConfigurer;
import javax.annotation.Resource;
import javax.sql.DataSource;
/**
* MyBatis基础配置
*
*/
@Configuration
@AutoConfigureAfter(DruidDBConfig.class)
@EnableTransactionManagement
public class MyBatisConfig implements TransactionManagementConfigurer {
@Resource
DataSource dataSource;
@Resource
DataSource stockDataSource;
@Bean
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return new DataSourceTransactionManager(dataSource);
}
@Bean
public PlatformTransactionManager annotation2DrivenTransactionManager() {
return new DataSourceTransactionManager(stockDataSource);
}
}
4.MyBatisMapperScannerConfig.java
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisMapperScannerConfig {
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mapperScannerConfigurer=new MapperScannerConfigurer();
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
mapperScannerConfigurer.setBasePackage("com.shunwang.shop.back.dao.bussiness");
return mapperScannerConfigurer;
}
@Bean
public MapperScannerConfigurer mapperScannerStockConfigurer() {
MapperScannerConfigurer mapperStockScannerConfigurer=new MapperScannerConfigurer();
mapperStockScannerConfigurer.setSqlSessionFactoryBeanName("stockSqlSessionFactory");
mapperStockScannerConfigurer.setBasePackage("com.shunwang.shop.back.dao.stock");
return mapperStockScannerConfigurer;
}
}