springboot默认数据源究竟是什么?

2023-11-11

springboot默认数据源究竟是什么?

springboot默认使用的数据源是druid、hikaricp、dbcp2还是tomcat pooling?

网上很多都说是hikaricp,其实这样的说法是不准确的。根据springboot官方文档给出的描述,springboot提供了一套数据源的选用规则:

  1. 我们更喜欢hikaricp的性能和并发性。如果有HikariCP,我们总是选择它。
  2. 否则,如果Tomcat pooling数据源可用,则使用它。
  3. 否则,如果Commons DBCP2可用,则使用它。
  4. 如果HikariCP、Tomcat和DBCP2都不可用,而Oracle UCP可用,我们就使用它。

上面所说的有,就是在clapasspath上有对应数据源的jar包,maven工程的话就是在pom引入对应的依赖。所以是在classpath下有HikariCP时springboot才会默认使用HikariCP

如果使用spring-boot-starter-jdbc或spring-boot-starter-data-jpa “starters”则会自动引入HikariCP依赖。

如何自定义配置想要的数据源?

通过设置spring.datasource.type属性可以绕过上面的算法,指定要使用的连接池,如你要用druid数据源:

spring.datasource.type = com.alibaba.druid.pool.DruidDataSource

前提是要引入druid依赖。

springboot配置数据源

数据源通用配置

数据源配置由spring.datasource.*中的外部配置属性控制。例如,你可以在application.properties中声明下面的section:

spring.datasource.url=jdbc:mysql://localhost/test spring.datasource.username=dbuser spring.datasource.password=dbpass

您至少应该通过设置spring.datasource.url属性来指定URL。否则,Spring Boot将尝试自动配置嵌入式数据库。

Spring Boot可以从URL推断出大多数数据库的JDBC驱动程序类。如果你需要指定一个特定的类,你可以使用spring.datasource.driver-class-name属性。

上述配置是最基本和通用数据源配置,更多标准数据源配置属性参考:spring-boot/DataSourceProperties.java at v2.6.14 · spring-projects/spring-boot · GitHub

特定数据源的配置

特定数据源配置则取决于你引入的数据源依赖,一般都是前缀都是:spring.datasource..*,如:

  • spring.datasource.hikari.*,
  • spring.datasource.tomcat.*,
  • spring.datasource.dbcp2.*, and
  • spring.datasource.oracleucp.*
  • spring.datasource.druid.*

这些配置的详细配置参看各自官网。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot默认数据源究竟是什么? 的相关文章

  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 按照目的来分,设计模式可以分为创建型模式、结构型模式和行为型模式。

    引用 软件秘笈 设计模式那点事 书籍 按照目的来分 设计模式可以分为创建型模式 结构型模式和行为型模式 创建型模式用来处理对象的创建过程 结构型模式用来处理类或者对象的组合 行为型模式用来对类或对象怎样交互和怎样分配职责进行描述 创建型模式
  • redis集群主流架构方案分析

    阿伊土鳖小码农 2017 02 10 09 29 Redis在互联网大数据平台有着广泛的应用 主要被用来缓存热点数据 避免海量请求压垮数据库 同时可以提升服务节点的响应速度和并发量 随着数据量的增多 由于redis是占用单台物理机或虚机的内
  • 【vue3+ts+vant】上传图片

    1 使用 van upload 组件 进行样式和功能配置 组件基础结构 配置文字和图标 配置最多数量和最大体积 支持双向数据绑定 支持选择图片后触发函数 支持点击删除事件函数 基础结构
  • STM32学习(一)-- stm32简介

    目录 前言 一 STM32简介 1 STM32 是什么 2 STM32 应用领域 3 STM32 优势 二 ARM简介 三 STM32芯片 1 芯片命名规则 2 型号分类及缩写 四 STM32F103C8T6 1 STM32F103C8T6
  • 机器学习:均值漂移(Mean Shift)详细解释

    1 均值漂移的基本概念 Mean Shift算法和k means相似 都是一个迭代的过程 即先算出当前点的偏移均值 将该点移动到该偏移均值 以此为新的起始点 继续移动 直到满足最终的条件 1 设想在一个有N个样本点的特征空间 初始确定一个中
  • LL(1)文法解析

    一 问题描述 给定上下文无关文法 对其进行解析 得出first集和follow集 在有能力的情况下 可以求出LL 1 分析表 二 算法设计 本程序主要分成三块内容 第一是文法的读入解析 第二是first集的求解 第三为follow集的求解
  • 蜣螂优化算法(DBO)优化VMD参数,最小包络熵、样本熵、信息熵、排列熵(适应度函数可自行选择,一键修改)包含MATLAB源代码

    蜣螂优化算法是华大学沈波教授团队 继麻雀搜索算法 Sparrow Search Algorithm SSA 之后 于2022年11月27日又提出的一种全新的群体智能优化算法 已有很多学者将算法用于实际工程问题中 今天咱们用蜣螂优化算法优化一
  • 七种实现web实时消息推送的方案!

    什么是消息推送 push 短轮询 长轮询 iframe流 SSE 我的方式 MQTT Websocket 自定义推送 Github地址 我有一个朋友 做了一个小破站 现在要实现一个站内信web消息推送的功能 对 就是下图这个小红点 一个很常
  • Python九九口诀表

    九九口诀1 py for i in range 1 10 for j in range 1 i 1 k j i print format j i k end t print n 九九口诀2 py for i in range 1 10 fo
  • 利用OpenSSL实现非阻塞通讯C++代码

    可以转载 转载请注明出处 谢谢 关于OpenSSL的原理以及OpenSSL如何安装 使用 测试demo请参看我之前的两篇博文 这篇博文主要实现了如何在win64下基于VS2012实现OpenSSL的非阻塞通讯 参考了以下几篇博文的内容 表示
  • gcov lcov, 部分代码无法生成 gcda 的原因解决

    参考http blog csdn net lostaway article details 40948841 配置 项目有多个module 组成 一部分有gcda 生成 一部分没有 原因是这部分module 在循环处理 永远不退出 使用 k
  • ResNet系列及其变体(六)—DarkNet53

    本篇主要介绍DarkNet53 其他ResNet系列及其变体介绍见如下blog ResNet系列及其变体目录 DarkNet53 YOLOv3 An Incremental Improvement Darknet53是经典的一个深层网络 结
  • 51单片机的步进电机控制系统(仿真+程序+报告+原理图)

    1 主要功能 该系统由AT89C51单片机 数码管模块 步进电机模块 按键模块构成 可实现功能 1 按键控制步进电机正反转 加减速 停止 2 2个发光二极管显示正反转 1位7段LED数码管显示当前转速档位 共9个档位 3 4个红色LED 指
  • java 8 stream 处理对于 List<Map<String,Object>> 数据的分组求和

    java 8 stream 处理对于 List
  • [914]linux如何批量关闭进程

    碰到需要杀掉某一类进程的时候 如何批量杀掉这些进程 使用awk命令是很好的选择 代码 ps ef grep aaa grep v grep awk print kill 9 2 sh ps ef grep aaa grep v grep 这
  • 查看Linux下网卡状态

    ip link 命令 或者 通过mii tool指令 root localhost root mii tool eth0 negotiated 100baseTx FD link ok eth1 no link 或 root localho
  • 网络通信的整个流程

    1 网络通信流程 你的电脑打开浏览器 访问www baidu com 先将请求信息发给了交换机 然后交给了路由器 路由发给DNS服务器 通过DNS协议去找我们要访问的百度的IP地址 查到的百度服务器对应的IP地址之后 路由器通过路由协议找到
  • 【Unity开发】Unity实现英雄联盟选择皮肤效果

    using UnityEngine using System Collections
  • 突破存储边界 赋能开放计算

    2022年8月10日 开放计算中国社区技术峰会 OCP China Day 2022在北京拉开帷幕 开放计算中国社区技术峰会 OCP China Day 是全球开放计算最具规模的生态峰会之一 此次大会以 开放 向未来 绿色 融合 赋能 为主
  • springboot默认数据源究竟是什么?

    springboot默认数据源究竟是什么 springboot默认使用的数据源是druid hikaricp dbcp2还是tomcat pooling 网上很多都说是hikaricp 其实这样的说法是不准确的 根据springboot官方