spring boot2.0 多数据源 druid

本配置是mysql-connector-java 5.8,驱动使用的是com.mysql.cj.jdbc.Driver.配置文件 注意spring boot2.0默认使用Hikari,属性名应为jdbc-url。若使用druid,则使用url

spring:
datasource:
localmysql:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/teaching_coach?useUnicode=true&characterEncoding=utf-8&userSSL=false&serverTimezone=GMT%2B8
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 1 from dual
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall,log4j
connectionProperties=druid.stat.mergeSql: true
druid:
stat-view-servlet:
login-username: druid
login-password: druid
web-stat-filter:
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
initialSize: 5
minIdle: 5
maxActive: 30
b2c:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@172.31.65.103:1521:orcl
username: b2cuat
password: b2cuat
type: com.alibaba.druid.pool.DruidDataSource
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 1 from dual
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall,log4j
connectionProperties=druid.stat.mergeSql: true
druid:
stat-view-servlet:
login-username: druid
login-password: druid
web-stat-filter:
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
initialSize: 5
minIdle: 5
maxActive: 30
pub:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@172.31.65.103:1521:orcl
username: pubuat
password: pubuat
type: com.alibaba.druid.pool.DruidDataSource
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 1 from dual
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall,log4j
connectionProperties=druid.stat.mergeSql: true
druid:
stat-view-servlet:
login-username: druid
login-password: druid
web-stat-filter:
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
initialSize: 5
minIdle: 5
maxActive: 30

配置类
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;

@Configuration
@MapperScan(basePackages = "com.ceair.filemanager.location.mapper.pub", sqlSessionTemplateRef = "pubSqlSessionTemplate")
public class PubDataSourceConfig {
@Bean(name = "pubDataSource")
@ConfigurationProperties(prefix = "spring.datasource.pub")
public DataSource setDataSource() {
//return DataSourceBuilder.create().build(); // Hakari使用的创建方式
return DruidDataSourceBuilder.create().build(); // druid使用这个创建
}

@Bean(name = "pubTransactionManager")
public DataSourceTransactionManager setTransactionManager(@Qualifier("pubDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}

@Bean(name = "pubSqlSessionFactory")
public SqlSessionFactory setSqlSessionFactory(@Qualifier("pubDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
return bean.getObject();
}

@Bean(name = "pubSqlSessionTemplate")
public SqlSessionTemplate setSqlSessionTemplate(@Qualifier("pubSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}

posted @ 2019-01-02 10:30  looyee  阅读(150)  评论(0编辑  收藏  举报