1.配置文件

#第一数据源

spring.datasource.primary.jdbc-url=jdbc:sqlserver://192.168.1.159\\aaa:1433;database=dataserver

spring.datasource.primary.username=sa

spring.datasource.primary.password=fr123456

spring.datasource.primary.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

spring.datasource.primary.type=com.zaxxer.hikari.HikariDataSource

spring.datasource.primary.minimum-idle=1spring.datasource.primary.maximum-pool-size=15spring.datasource.primary.auto-commit=truespring.datasource.primary.idle-timeout=60000spring.datasource.primary.pool-name=fang_sqlserver

spring.datasource.primary.max-lifetime=1800000spring.datasource.primary.connection-timeout=30000spring.datasource.primary.connection-test-query=SELECT 1#第二数据源

spring.datasource.secondary.jdbc-url=jdbc:mysql://192.168.1.130:33306/reptie?zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&autoReconnect=true

spring.datasource.secondary.username=root

spring.datasource.secondary.password=123456spring.datasource.secondary.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.secondary.type=com.zaxxer.hikari.HikariDataSource

spring.datasource.secondary.minimum-idle=1spring.datasource.secondary.maximum-pool-size=15spring.datasource.secondary.auto-commit=truespring.datasource.secondary.idle-timeout=60000spring.datasource.secondary.pool-name=fang_mysql

spring.datasource.secondary.max-lifetime=1800000spring.datasource.secondary.connection-timeout=30000spring.datasource.secondary.connection-test-query=SELECT 1

2.java代码,配置DataSource

import com.zaxxer.hikari.HikariDataSource;

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.context.annotation.Primary;

import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

/**

* @author PangG

* @MapperScan 扫描mapper所在路径

*/

@Configuration

@MapperScan(basePackages = "aa.com.cn.mapper.sqlserver", sqlSessionFactoryRef = "sqlserverSqlSessionFactory")

public class SqlserverDataSourceConfig {

/**

* @Bean 注册Bean对象

* @Primary 表示默认数据源

* @ConfigurationProperties 读取properties中的配置参数映射成为一个对象

*/

@Bean(name = "sqlserverDataSource")

@Primary

@ConfigurationProperties(prefix = "spring.datasource.primary")

public HikariDataSource getSqlserverDateSource() {

return new HikariDataSource();

}

/**

* @param datasource 数据源

* @return SqlSessionFactory

* @Primary 默认SqlSessionFactory

*/

@Bean(name = "sqlserverSqlSessionFactory")

@Primary

public SqlSessionFactory sqlserverSqlSessionFactory(@Qualifier("sqlserverDataSource") DataSource datasource) throws Exception {

SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

bean.setDataSource(datasource);

//mybatis扫描xml所在位置

bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/sqlserver/*.xml"));

//分页插件

Interceptor interceptor = new PageInterceptor();

Properties properties = new Properties();

//数据库

properties.setProperty("helperDialect", "sqlserver");

// //是否将参数offset作为PageNum使用

// properties.setProperty("offsetAsPageNum", "true");

// //是否进行count查询

// properties.setProperty("rowBoundsWithCount", "true");

//是否分页合理化

properties.setProperty("reasonable", "true");

interceptor.setProperties(properties);

bean.setPlugins(new Interceptor[] {interceptor});

return bean.getObject();

}

@Bean("sqlserverSessionTemplate")

@Primary

public SqlSessionTemplate sqlserverSqlSessionTemplate(@Qualifier("sqlserverSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {

return new SqlSessionTemplate(sqlSessionFactory);

}

}

import com.zaxxer.hikari.HikariDataSource;

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.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

/**

* @author PangG

* @MapperScan 扫描mapper所在路径

*/

@Configuration

@MapperScan(basePackages = "aa.com.cn.mapper.mysql", sqlSessionFactoryRef = "mysqlSqlSessionFactory")

public class MySqlDataSourceConfig {

/**

* @Bean 注册Bean对象

* @Primary 表示默认数据源

* @ConfigurationProperties 读取properties中的配置参数映射成为一个对象

*/

@Bean(name = "mysqlDataSource")

@ConfigurationProperties(prefix = "spring.datasource.secondary")

public HikariDataSource getMysqlDateSource() {

return new HikariDataSource();

}

/**

* @param datasource 数据源

* @return SqlSessionFactory

* @Primary 默认SqlSessionFactory

*/

@Bean(name = "mysqlSqlSessionFactory")

public SqlSessionFactory mysqlSqlSessionFactory(@Qualifier("mysqlDataSource") DataSource datasource) throws Exception {

SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

bean.setDataSource(datasource);

//mybatis扫描xml所在位置

bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/mysql/*.xml"));

//分页插件

Interceptor interceptor = new PageInterceptor();

Properties properties = new Properties();

//数据库

properties.setProperty("helperDialect", "mysql");

// //是否将参数offset作为PageNum使用

// properties.setProperty("offsetAsPageNum", "true");

// //是否进行count查询

// properties.setProperty("rowBoundsWithCount", "true");

//是否分页合理化

properties.setProperty("reasonable", "true");

interceptor.setProperties(properties);

bean.setPlugins(new Interceptor[]{interceptor});

return bean.getObject();

}

@Bean("mysqlSessionTemplate")

public SqlSessionTemplate mysqlSqlSessionTemplate(@Qualifier("mysqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {

return new SqlSessionTemplate(sqlSessionFactory);

}

}

如果有 Thread starvation or clock leap detecte 警告 把minimum-idle的值设置成1即可

下面有评论,看不懂,感觉没必要?

getMysqlDateSource(),这个方法的返回值应该改为DataSource,不能是HikariDataSource。 否则的话,@Bean初始化不会执行这个方法。 因为springboot自己已经创建了一个HikariDataSource对象放在ioc容器里,@Bean不会重复创建

hikari数据源配置类_springboot 2 多数据源 hikari 连接池相关推荐

  1. hikari数据源配置类_SpringBoot多数据源配置详解

    开发环境:JDK1.8+SpringBoot2.1.4.RELEASE+Oracle 这里我们假设要使用两个数据源分别为:master和slave. pom.xml 依赖包 org.springfra ...

  2. hikari数据源配置类_springboot hikari mybatis-plus 多数据源配置

    1.编写配置文件 application.yml spring: datasource: primary: driver-class-name: org.postgresql.Driver url: ...

  3. hikari数据源配置类_Spring中的“多数据源”之详解

    注意事项 不同数据源的配置要分开 关注每次使用的数据源 有多个DataSource时系统如何判断 对应的设施(事务.ORM)如何选择DataSource 多数据源配置(二选一) 配置@Primary类 ...

  4. hikari数据源配置类_spring-boot2项目默认hikari数据源的配置

    spring-boot2中默认使用hikari连接池管理数据源链接.下面列出了项目中配置的内容,也是项目中常用的配置项,基本就够用了. 首先配置数据源: # spring datasource配置 s ...

  5. hikari数据源配置类_SpringBoot2集成Mybatis Hikari多数据源配置

    在开发微服务的过程中,有时我们的服务需要连接两个以上的数据库进行业务数据的CRUD操作,这时候就需要我们进行多数据源的配置. pom.xml xsi:schemaLocation="http ...

  6. springboot数据源不正确_SpringBoot整合多数据源的巨坑!!!

    导读 本篇文章接上篇SpringBoot整合多数据源,你会了吗?,前面文章最后留了几个问题供大家思考,今天一一揭晓. 配置如何优化 上文整合的过程中的还顺带整合Mybatis和TransactionM ...

  7. springboot2.0.5+jpa多数据源配置and注解形式多数据源切换

    1.首先配置数据源连接总装类DataSourcesConfig package com.cpic.dataSources;import org.springframework.beans.factor ...

  8. java+++多数据源配置,Spring Cloud + Mybatis 多数据源配置

    项目开发中遇到缺陷,使用多数据源能避免分库间数据同步的步骤,在此记录配置步骤. 一.数据源自动配置禁用 1.将spring boot自带的DataSourceAutoConfiguration禁掉,防 ...

  9. 2 数据源配置_Quick BI支持哪些数据源(配置操作篇)

    Quick BI 潜心打造了核心技术底座(OLAP分析引擎),实现了SQL解析.SQL调度.SQL优化.查询加速等基础能力,支撑Quick BI的数据分析和查询加速.OLAP分析引擎包括数据源连接.数 ...

最新文章

  1. mysql 时间差函数 timestampdiff datediff 简介
  2. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试
  3. Javascript实例:Select的OnChange()事件
  4. zzuliOJ 2536: 绿绿学姐与AI 1
  5. c语言调用go函数,C中调用go中的回调函数
  6. rog live service是什么_双11手机怎么买?ROG游戏手机3“独一份”体验,值得剁手...
  7. java猜拳论文_Java人机猜拳实现的思路及方法实例
  8. 统计学习导论_统计学习导论 | 读书笔记11 | 多项式回归和阶梯函数
  9. java中如何将string 转化成long
  10. python模拟ssh登录
  11. andriod驱动之旅-a31s芯片-android环境
  12. Go语言值不值得学,发展前景怎么样?
  13. 计算机工程制图电子书,程计算机制图工程计算机制图.pdf
  14. Linux LittlevGL 使用
  15. 减脂增肌运动和饮食结合
  16. 前端第一章:1.C/S架构、B/S架构简介、互联网的发明、渲染的解释、W3C万维网联盟、网页的结构
  17. Circular Billiard Table(计算几何)
  18. win10系统查看组件服务器,win10系统查看邮箱服务器信息的技巧介绍
  19. 使用Matlab对频繁2项集和频繁3项集的求取
  20. Cypress简介及在Windows下安装

热门文章

  1. 用Python爬虫下载整本小说
  2. Lake Shore低温温度传感器综合介绍
  3. 2021-08-17 介绍一款好用的播放器VLC media player
  4. 抖音旅游营销,如何分析你的竞争对手?
  5. 安装单机版大语言模型AI,基于LLaMA的斯坦福大学开源Alpaca
  6. asp系统转换php系统时间函数,ASP_ASP中的时间函数大全 时间操作函数,Date 函数 描述:返回当前系统日 - phpStudy...
  7. gitlab修改root密码
  8. centos的mysql修改root密码_CentOS环境中MySQL修改root密码方法
  9. vs2019中打开qt中的后缀.ui文件提示未能完成操作,未指定的错误
  10. 还在等机会?教你一种更清晰的Android架构!详细的Android学习指南