hikari数据源配置类_springboot 2 多数据源 hikari 连接池
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 连接池相关推荐
- hikari数据源配置类_SpringBoot多数据源配置详解
开发环境:JDK1.8+SpringBoot2.1.4.RELEASE+Oracle 这里我们假设要使用两个数据源分别为:master和slave. pom.xml 依赖包 org.springfra ...
- hikari数据源配置类_springboot hikari mybatis-plus 多数据源配置
1.编写配置文件 application.yml spring: datasource: primary: driver-class-name: org.postgresql.Driver url: ...
- hikari数据源配置类_Spring中的“多数据源”之详解
注意事项 不同数据源的配置要分开 关注每次使用的数据源 有多个DataSource时系统如何判断 对应的设施(事务.ORM)如何选择DataSource 多数据源配置(二选一) 配置@Primary类 ...
- hikari数据源配置类_spring-boot2项目默认hikari数据源的配置
spring-boot2中默认使用hikari连接池管理数据源链接.下面列出了项目中配置的内容,也是项目中常用的配置项,基本就够用了. 首先配置数据源: # spring datasource配置 s ...
- hikari数据源配置类_SpringBoot2集成Mybatis Hikari多数据源配置
在开发微服务的过程中,有时我们的服务需要连接两个以上的数据库进行业务数据的CRUD操作,这时候就需要我们进行多数据源的配置. pom.xml xsi:schemaLocation="http ...
- springboot数据源不正确_SpringBoot整合多数据源的巨坑!!!
导读 本篇文章接上篇SpringBoot整合多数据源,你会了吗?,前面文章最后留了几个问题供大家思考,今天一一揭晓. 配置如何优化 上文整合的过程中的还顺带整合Mybatis和TransactionM ...
- springboot2.0.5+jpa多数据源配置and注解形式多数据源切换
1.首先配置数据源连接总装类DataSourcesConfig package com.cpic.dataSources;import org.springframework.beans.factor ...
- java+++多数据源配置,Spring Cloud + Mybatis 多数据源配置
项目开发中遇到缺陷,使用多数据源能避免分库间数据同步的步骤,在此记录配置步骤. 一.数据源自动配置禁用 1.将spring boot自带的DataSourceAutoConfiguration禁掉,防 ...
- 2 数据源配置_Quick BI支持哪些数据源(配置操作篇)
Quick BI 潜心打造了核心技术底座(OLAP分析引擎),实现了SQL解析.SQL调度.SQL优化.查询加速等基础能力,支撑Quick BI的数据分析和查询加速.OLAP分析引擎包括数据源连接.数 ...
最新文章
- mysql 时间差函数 timestampdiff datediff 简介
- Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试
- Javascript实例:Select的OnChange()事件
- zzuliOJ 2536: 绿绿学姐与AI 1
- c语言调用go函数,C中调用go中的回调函数
- rog live service是什么_双11手机怎么买?ROG游戏手机3“独一份”体验,值得剁手...
- java猜拳论文_Java人机猜拳实现的思路及方法实例
- 统计学习导论_统计学习导论 | 读书笔记11 | 多项式回归和阶梯函数
- java中如何将string 转化成long
- python模拟ssh登录
- andriod驱动之旅-a31s芯片-android环境
- Go语言值不值得学,发展前景怎么样?
- 计算机工程制图电子书,程计算机制图工程计算机制图.pdf
- Linux LittlevGL 使用
- 减脂增肌运动和饮食结合
- 前端第一章:1.C/S架构、B/S架构简介、互联网的发明、渲染的解释、W3C万维网联盟、网页的结构
- Circular Billiard Table(计算几何)
- win10系统查看组件服务器,win10系统查看邮箱服务器信息的技巧介绍
- 使用Matlab对频繁2项集和频繁3项集的求取
- Cypress简介及在Windows下安装
热门文章
- 用Python爬虫下载整本小说
- Lake Shore低温温度传感器综合介绍
- 2021-08-17 介绍一款好用的播放器VLC media player
- 抖音旅游营销,如何分析你的竞争对手?
- 安装单机版大语言模型AI,基于LLaMA的斯坦福大学开源Alpaca
- asp系统转换php系统时间函数,ASP_ASP中的时间函数大全 时间操作函数,Date 函数 描述:返回当前系统日 - phpStudy...
- gitlab修改root密码
- centos的mysql修改root密码_CentOS环境中MySQL修改root密码方法
- vs2019中打开qt中的后缀.ui文件提示未能完成操作,未指定的错误
- 还在等机会?教你一种更清晰的Android架构!详细的Android学习指南