SpringBoot默认使用HikariDataSource数据源方式

作者:程序猿新手_曹先生 时间:2022-03-18 01:04:46 

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;

来源:https://blog.csdn.net/qq_41691210/article/details/110736283

标签:SpringBoot,HikariDataSource,数据源
0
投稿

猜你喜欢

  • SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法

    2023-11-01 16:03:39
  • eclipse的web项目实现Javaweb购物车的方法

    2023-07-28 15:55:53
  • TransmittableThreadLocal解决线程间上下文传递烦恼

    2023-11-09 17:09:35
  • Java中的强引用,软引用,弱引用,虚引用的作用介绍

    2023-08-27 11:03:28
  • Java设计模式之java命令模式详解

    2023-11-13 16:00:36
  • Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动

    2023-09-21 00:16:18
  • 浅析JDK12的五大重要新特性(推荐)

    2023-01-28 19:09:24
  • Java如何把数组转换为ArrayList

    2021-08-14 19:59:45
  • c++中的string常用函数用法总结

    2023-11-02 16:44:02
  • 基于spring boot 的配置参考大全(推荐)

    2021-11-28 23:32:41
  • 浅谈java多线程wait,notify

    2023-11-29 16:29:03
  • IDEA解决src和resource下创建多级目录的操作

    2023-03-24 07:05:37
  • 使用springboot整合RateLimiter限流过程

    2022-09-12 21:42:48
  • 如何利用IDEA搭建SpringBoot项目整合mybatis实现简单的登录功能

    2022-01-15 06:14:59
  • Spring boot如何集成kaptcha并生成验证码

    2023-09-13 04:00:24
  • java批量修改文件后缀名方法总结

    2022-03-15 15:46:04
  • JavaMap两种遍历方式keySet与entrySet详解

    2022-04-17 14:36:29
  • 快速了解Maven

    2022-10-22 20:18:33
  • Java实现24点小游戏

    2023-07-26 07:34:55
  • 解读Spring-boot的debug调试

    2022-06-09 15:04:06
  • asp之家 软件编程 m.aspxhome.com