6条回答 默认 最新
- kiboyiscoming 2019-02-19 11:08关注
最终配置如下
package com.yt.config.jdbc; 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.jdbc.core.JdbcTemplate; import javax.sql.DataSource; /** * @描述 多数据源连接配置类 * @创建人 WS9430 * @创建日期 2018-10-12 */ @Configuration public class JDBCDataSourceConfig { @Bean(name = "U8DataSource") @Qualifier("U8DataSource") @Primary @ConfigurationProperties(prefix="spring.datasource.druid.db1") public DataSource u8DataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "U8JdbcTemplate") public JdbcTemplate u8JdbcTemplate(@Qualifier("U8DataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "OADataSource") @Qualifier("OADataSource") @ConfigurationProperties(prefix="spring.datasource.druid.db2") public DataSource oaDataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "OAJdbcTemplate") public JdbcTemplate oaJdbcTemplate(@Qualifier("OADataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "U8DataSource3") @Qualifier("U8DataSource3") @ConfigurationProperties(prefix="spring.datasource.druid.db3") public DataSource u8DataSource3() { return DataSourceBuilder.create().build(); } @Bean(name = "U8JdbcTemplate3") public JdbcTemplate u8JdbcTemplate3(@Qualifier("U8DataSource3") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "U8DataSource4") @Qualifier("U8DataSource4") @ConfigurationProperties(prefix="spring.datasource.druid.db4") public DataSource u8DataSource4() { return DataSourceBuilder.create().build(); } @Bean(name = "U8JdbcTemplate4") public JdbcTemplate u8JdbcTemplate4(@Qualifier("U8DataSource4") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "U8DataSource5") @Qualifier("U8DataSource5") @ConfigurationProperties(prefix="spring.datasource.druid.db5") public DataSource u8DataSource5() { return DataSourceBuilder.create().build(); } @Bean(name = "U8JdbcTemplate5") public JdbcTemplate u8JdbcTemplate5(@Qualifier("U8DataSource5") DataSource dataSource) { return new JdbcTemplate(dataSource); } }
logging: level.root: info level.com.stylefeng: debug path: logs/ file: guns.log # sqlserver数据库连接配置 S spring: aop: proxy-target-class: true datasource: db1: url: jdbc:sqlserver://12.1.236:1433;DatabaseName=UFDATA_107_2017 username: 1 password: 1 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver db2: url: jdbc:sqlserver://1.1.52:1433;DatabaseName=ecology81 username: 1 password: 1 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver db3: url: jdbc:sqlserver://11117.52:1433;DatabaseName=ecology81 username: 1 password: 1 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver db4: url: jdbc:sqlserver://1.1.236:1433;DatabaseName=UFDATA_016_2016 username: 1 password: 1 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver db5: url: jdbc:sqlserver://1.1.236:1433;DatabaseName=UFDATA_005_2018 username: 1 password: 1 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver druid: initial-size: 10 #初始化连接数 max-evictable-idle-time-millis: 20 min-idle: 5 #最小空闲连接 max-active: 500 #最大连接数量 log-abandoned: true #是否在自动回收超时连接的时候打印连接的超时错误 remove-abandoned: true #是否自动回收超时连接 remove-abandoned-timeout: 600 #超时时间(以秒数为单位) max-wait: 5000 #<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 --> test-on-borrow: true #申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 test-while-idle: true #建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 validation-query: select 1 #检测数据库的查询语句 min-evictable-idle-time-millis: 600000 #每隔五分钟检测空闲超过10分钟的连接 time-between-eviction-runs-millis: 300000 #1) Destroy线程会检测连接的间隔时间2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明 exception-sorter: true #根据dbType自动识别,当数据库抛出一些不可恢复的异常时,抛弃连接 test-on-return: true #归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true # sqlserver数据库连接配置 E # thymeleaf模板配置 S thymeleaf: prefix: classpath:/templates/ suffix: .html mode: HTML5 encoding: UTF-8 cache: false #热部署文件,页面不产生缓存,及时更新 resources: chain: strategy: content: enabled: true paths: /** mvc: static-path-pattern: /static/** # #jdbc配置 # spring.datasource.driver-class-name=com.mysql.jdbc.Driver # spring.datasource.url=jdbc:mysql:///test # spring.datasource.username=root # spring.datasource.password=root # spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # # #连接池的设置 # #初始化时建立物理连接的个数 # spring.datasource.druid.initial-size=5 # #最小连接池数量 # spring.datasource.druid.min-idle=5 # #最大连接池数量 maxIdle已经不再使用 # spring.datasource.druid.max-active=20 # #获取连接时最大等待时间,单位毫秒 # spring.datasource.druid.max-wait=60000 # #申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 # spring.datasource.druid.test-while-idle=true # #既作为检测的间隔时间又作为testWhileIdel执行的依据 # spring.datasource.druid.time-between-eviction-runs-millis=60000 # #销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接 # spring.datasource.druid.min-evictable-idle-time-millis=30000 # #用来检测连接是否有效的sql 必须是一个查询语句 # #mysql中为 select 'x' # #oracle中为 select 1 from dual # spring.datasource.druid.validation-query=select 'x' # #申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true # spring.datasource.druid.test-on-borrow=false # #归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true # spring.datasource.druid.test-on-return=false # #当数据库抛出不可恢复的异常时,抛弃该连接 # spring.datasource.druid.exception-sorter=true # #是否缓存preparedStatement,mysql5.5+建议开启 # #spring.datasource.druid.pool-prepared-statements=true # #当值大于0时poolPreparedStatements会自动修改为true # spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 # #配置扩展插件 # spring.datasource.druid.filters=stat,wall # #通过connectProperties属性来打开mergeSql功能;慢SQL记录 # spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 # #合并多个DruidDataSource的监控数据 # spring.datasource.druid.use-global-data-source-stat=true # #设置访问druid监控页的账号和密码,默认没有 # #spring.datasource.druid.stat-view-servlet.login-username=admin # #spring.datasource.druid.stat-view-servlet.login-password=admin # # #jpa设置 # spring.jpa.database=mysql # spring.jpa.show-sql=true # spring.jpa.hibernate.ddl-auto=update
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 5