SpringBoot默认使用HikariDataSource数据源方式

 更新时间:2021年10月01日 10:05:36   作者:程序猿新手_曹先生  
这篇文章主要介绍了SpringBoot默认使用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;

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

相关文章

  • 解决Java properties文件里面如何写"\"的问题

    解决Java properties文件里面如何写"\"的问题

    由于properties使用“\”相当于是java的转义符,如果想要写出\的效果,只需修改相应的写法即可,对java properties文件里的"\"写法感兴趣的朋友一起看看吧
    2022-04-04
  • 使用@Validated注解进行校验却没有效果的解决

    使用@Validated注解进行校验却没有效果的解决

    这篇文章主要介绍了使用@Validated注解进行校验却没有效果的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • java学生信息管理系统设计(2)

    java学生信息管理系统设计(2)

    这篇文章主要为大家详细介绍了java学生信息管理系统设计,学生信息添加进入数据库的事务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Spring Boot2.0整合ES5实现文章内容搜索实战

    Spring Boot2.0整合ES5实现文章内容搜索实战

    这篇文章主要介绍了Spring Boot2.0整合ES5实现文章内容搜索实战,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Java多线程中的互斥锁解析

    Java多线程中的互斥锁解析

    这篇文章主要介绍了Java多线程中的互斥锁解析,Java语言中,引入了对象互斥锁的概念,来保证共享数据操作的完整性,每个对象都对应于一个可称为互斥锁的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象,需要的朋友可以参考下
    2023-09-09
  • Java使用Thread创建多线程并启动操作示例

    Java使用Thread创建多线程并启动操作示例

    这篇文章主要介绍了Java使用Thread创建多线程并启动操作,结合实例形式分析了Java基于Thread类的多线程定义与启动简单操作技巧,需要的朋友可以参考下
    2018-06-06
  • springmvc重定向实现方法解析

    springmvc重定向实现方法解析

    这篇文章主要介绍了springmvc重定向实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 详解SpringBoot禁用Swagger的三种方式

    详解SpringBoot禁用Swagger的三种方式

    在生产环境下,我们需要关闭swagger配置,避免暴露接口的这种危险行为。本文就详细的介绍了3种情况,感兴趣的可以了解一下
    2021-11-11
  • Java Timezone类常见问题_动力节点Java学院整理

    Java Timezone类常见问题_动力节点Java学院整理

    这篇文章主要介绍了Java Timezone类常见问题的相关资料,需要的朋友可以参考下
    2017-05-05
  • SpringSecurity实现前后端分离的示例详解

    SpringSecurity实现前后端分离的示例详解

    Spring Security默认提供账号密码认证方式,具体实现是在UsernamePasswordAuthenticationFilter 中,这篇文章主要介绍了SpringSecurity实现前后端分离的示例详解,需要的朋友可以参考下
    2023-03-03

最新评论