SpringBoot默认使用HikariDataSource数据源方式

目录
  • SpringBoot默认使用HikariDataSource数据源
    • 定义
    • 数据库连接
  • HikariDataSource默认配置

SpringBoot默认使用HikariDataSource数据源

定义

数据源:存储了所有建立数据库连接的信息。通过提供正确的数据源名称,你可以找到相应的数据库连接。

数据源负责维持一个数据库连接池,当程序创建数据源实例时,系统会一次性的创建多个数据库连接,并把这些数据连接保存在连接池中。当程序需要进行数据库访问时,无须重新获得数据库连接,而是从连接池中取出一个空闲的数据库连接,当程序使用数据库连接访问结束后,无须关闭数据库连接,而是将数据库连接归还给连接池即可。通过这种方式可以避免频繁的获取数据库连接,关闭数据库连接所导致的性能下降。

全局配置文件application.yml中spring.datasource下只配置了账号,密码,数据库地址,连接驱动,因为默认使用的是HikariDataSource数据源。

如果是自定义数据源,可以使用

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

测试:

@RunWith(SpringRunner.class)
@SpringBootTest
public class HorseApplicationTests {
    /**
     * Spring Boot 默认已经配置好了数据源,程序员可以直接 DI 注入然后使用即可
     */
    @Resource
    DataSource dataSource;

    @Test
    public void contextLoads() throws SQLException {
        System.out.println("数据源>>>>>>" + dataSource.getClass());
    }

运行结果:

数据源>>>>>>class com.zaxxer.hikari.HikariDataSource

数据库连接

有了数据源,就可以拿到数据库连接,使用JdbcTemplate 进行CRUD数据库,即使没有使用第三方数据库操作框架,如:Mybatis,Hibernate,等Spring本身就可以对原生的JDBC做了轻量级的封装,即时JdbcTemplate.

SpringBoot不仅提供了默认的数据源,同时默认已经配置好了JdbcTemplate放在容器中,程序员只需自己注入即可使用。

JdbcTemplate的自动装配原理是依赖JdbcTemplateAutoConfiguration类。

HikariDataSource默认配置

com.zaxxer.hikari.HikariConfig
private static final long IDLE_TIMEOUT = MINUTES.toMillis(10);
private static final long MAX_LIFETIME = MINUTES.toMillis(30);
private static final int DEFAULT_POOL_SIZE = 10;
private static boolean unitTest = false;

// Properties changeable at runtime through the HikariConfigMXBean
//
private volatile long connectionTimeout;
private volatile long validationTimeout;
private volatile long idleTimeout;
private volatile long leakDetectionThreshold;
private volatile long maxLifetime;
private volatile int maxPoolSize;
private volatile int minIdle;
private volatile String username;
private volatile String password;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 谈谈Spring Boot 数据源加载及其多数据源简单实现(小结)

    业务需求 提供所有微服务数据源的图形化维护功能 代码生成可以根据选择的数据源加载表等源信息 数据源管理要支持动态配置,实时生效 附录效果图 实现思路 本文提供方法仅供类似简单业务场景,在生产环境和复杂的业务场景 请使用分库分表的中间件(例如mycat)或者框架 sharding-sphere (一直在用)等 先来看Spring 默认的数据源注入策略,如下代码默认的事务管理器在初始化时回去加载数据源实现.这里就是我们动态数据源的入口 // 默认的事务管理器 ppublic class DataSo

  • Spring Boot 动态数据源示例(多数据源自动切换)

    本文实现案例场景: 某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库. 为了在开发中以最简单的方法使用,本文基于注解和AOP的方法实现,在spring boot框架的项目中,添加本文实现的代码类后,只需要配置好数据源就可以直接通过注解使用,简单方便. 一配置二使用 1. 启动类注册动态数据源 2. 配置文件中配置多个数据源 3. 在需要的方法上使用注解指定数据源 1.在启动类添加 @Import({Dyna

  • SpringBoot快速配置数据源的方法

    SpringBoot如何快速配置数据源:有如下两种方式: 通过spring-boot-starter-jdbc快速配置数据源 自定义数据源DataSource 首先我们需要明确数据源DataSource有什么作用: 通过DataSource可以获取数据库连接Connection 通过DataSource创建JdbcTemplate操作数据库 实际项目中,我们在配置数据源的时候会指定数据库连接池,比如流行的Hikari(spring默认的数据库连接池).C3p0.Dbcp2以及阿里巴巴的Druid

  • spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法

    此方法为极简配置,支持MySQL数据库多库连接.支持Hikari连接池.支持MyBatis(包括Dao类和xml文件位置的配置). 1.pom.xml中引入依赖: <!-- Begin of DB related --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId>

  • SpringBoot使用编程方式配置DataSource的方法

    Spring Boot使用固定算法来扫描和配置DataSource.这使我们可以在默认情况下轻松获得完全配置的DataSource实现. Spring Boot还会按顺序快速的自动配置连接池(HikariCP, Apache Tomcat或Commons DBCP),具体取决于路径中的哪些类. 虽然Spring Boot的DataSource自动配置在大多数情况下运行良好,但有时我们需要更高级别的控制,因此我们必须设置自己的DataSource实现,因此忽略自动配置过程. Maven依赖 总体而

  • SpringBoot默认使用HikariDataSource数据源方式

    目录 SpringBoot默认使用HikariDataSource数据源 定义 数据库连接 HikariDataSource默认配置 SpringBoot默认使用HikariDataSource数据源 定义 数据源:存储了所有建立数据库连接的信息.通过提供正确的数据源名称,你可以找到相应的数据库连接. 数据源负责维持一个数据库连接池,当程序创建数据源实例时,系统会一次性的创建多个数据库连接,并把这些数据连接保存在连接池中.当程序需要进行数据库访问时,无须重新获得数据库连接,而是从连接池中取出一个

  • springboot配置多个数据源两种方式实现

    目录 第一种方式: 方法二 在我们的实际业务中可能会遇到:在一个项目里面读取多个数据库的数据来进行展示,spring对同时配置多个数据源是支持的. 本文中将展示两种方法来实现这个功能. springboot+mybatis 第一种方式: 在配置文件中配置多个数据源,然后通过配置类来获取数据源以及mapper相关的扫描配置 pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId

  • SpringBoot+mybatis实现多数据源支持操作

    什么是多数据源支持? 简单的说,就是一个项目里,同时可以访问多个不同的数据库. 实现原理 单个数据源在配置时会绑定一套mybatis配置,多个数据源时,不同的数据源绑定不同的mybatis配置就可以了,简单的思路就是让不同的数据源扫描不同的包,让不同的包下的mapper对应连接不同的数据源去处理逻辑. 业务场景假设 项目底层有正常业务库和日志库,希望解决的是将项目中的一些日志单独记录到一个库里,比如用户操作记录.产品更新记录等. 说一下为什么会有这个需求:用户操作记录和产品更新记录可能很多,而实

  • springboot+quartz以持久化的方式实现定时任务的代码

    这篇文章给大家介绍springboot+quartz以持久化的方式实现定时任务,详情如下所示: 篇幅较长,耐心的人总能得到最后的答案小生第一次用quartz做定时任务,不足之处多多谅解. 首先 在springboot项目里做定时任务是比较简单的,最简单的实现方式是使用**@Scheduled注解,然后在application启动类上使用@EnableScheduling**开启定时任务. 示例 @SpringBootApplication @EnableScheduling public cla

  • SpringBoot配置MongoDB多数据源的方法步骤

    1.项目构建 添加 pom 文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 2.在 application.properties 中添加配置 ##start mongodb for basic #-------------

  • 基于注解的springboot+mybatis的多数据源组件的实现代码

    通常业务开发中,我们会使用到多个数据源,比如,部分数据存在mysql实例中,部分数据是在oracle数据库中,那这时候,项目基于springboot和mybatis,其实只需要配置两个数据源即可,只需要按照 dataSource -SqlSessionFactory - SqlSessionTemplate配置好就可以了. 如下代码,首先我们配置一个主数据源,通过@Primary注解标识为一个默认数据源,通过配置文件中的spring.datasource作为数据源配置,生成SqlSessionF

  • springboot中mybatis多数据源动态切换实现

    目录 多数据源配置引入 动态数据源路由实现 动态数据源切换使用 案例源码 在开发中,动态数据源配置还是用的比较多的,比如在多数据源使用方面,又或者是在多个DB之间切换方面.这里给出一个动态数据源的配置方案,两个DB均以mysql为例. 多数据源配置引入 mybatis和mysql在springboot中的引入这里就不在说了,不了解的可以参见springboot中mysql与mybatis的引入. 数据源配置如下: datasource: master: type: com.alibaba.dru

  • springboot下配置多数据源的方法

    一.springboot 简介 SpringBoot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run". 我们为Spring平台及第三方库提 供开箱即用的设置,这样你就可以有条不紊地开始.多数Spring Boot应用需要很少的Spring配置. 你可以使用SpringBoot创建Java应用,并使用 java -jar 启动它或采用传统的war部署方式.我们也提供了一个运行"spring 脚本"的命令行工具. 二.传统的Dat

  • springboot + mybatis配置多数据源示例

    在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一个数据源. 代码结构: 简要原理: 1)DatabaseType列出所有的数据源的key---key 2)DatabaseContextHolder是一个线程安全的DatabaseType容器,并提供了向其中设置和获取DatabaseType的方法 3)DynamicDataSource继承AbstractRoutingDataSource并重写其中的方法determineCurrentLookupKey(),在该方法中使用Da

  • 关于Springboot日期时间格式化处理方式总结

    项目中使用LocalDateTime系列作为DTO中时间的数据类型,但是SpringMVC收到参数后总报错,为了配置全局时间类型转换,尝试了如下处理方式. 注:本文基于Springboot2.x测试,如果无法生效可能是spring版本较低导致的.PS:如果你的Controller中的LocalDate类型的参数啥注解(RequestParam.PathVariable等)都没加,也是会出错的,因为默认情况下,解析这种参数是使用ModelAttributeMethodProcessor进行处理,而

随机推荐