14-Springboot默认数据源配置HikariDataSource
前一篇:13-Springboot中HttpEncodingAutoConfiguration自动配置详解https://blog.csdn.net/fsjwin/article/details/109740170
数据源的配置,首先说明,boot已经集成了数据源,我们可以使用其知道的数据源,但是谁会用他自带的呢?哈哈,可以原理还是很重要的,需要好好了解下,之后呢,想用什么数据源就对接什么数据源就可以了。哈哈哈
1. 使用数据源的前提,加入依赖
starter是不是很熟悉,一个start解决所有问题<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><version>2.3.0.RELEASE</version></dependency>对接的是mysql数据库,引入mysql的启动包<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.9</version></dependency>
深入的了解下这个spring-boot-starter-jdbc中引入了那些依赖
<dependencies>基础依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.3.0.RELEASE</version><scope>compile</scope></dependency>Hikari数据源和durid、dpcp、c3p0一样的功能<dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><scope>compile</scope></dependency>spring-jdbc的依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><scope>compile</scope></dependency></dependencies>
2. 数据源的自动配置类看一眼DataSourceAutoConfiguration
想象一下肯定有这么一个类叫:DataSourceAutoConfiguration
它里面会有个properies类封装相关yml参数,
我们要做的就是在yml中写一些他规定好的配置就可以了。
- 池化的数据源
@Configuration(proxyBeanMethods = false)@Conditional(PooledDataSourceCondition.class)@ConditionalOnMissingBean({ DataSource.class, XADataSource.class })@Import({ DataSourceConfiguration.Hikari.class, DataSourceConfiguration.Tomcat.class,DataSourceConfiguration.Dbcp2.class, DataSourceConfiguration.Generic.class,DataSourceJmxConfiguration.class })protected static class PooledDataSourceConfiguration {}
2. 类上的注解:
@EnableConfigurationProperties(DataSourceProperties.class)
- DataSourceProperties中规定配置规则,和封装配置属性
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceProperties implements BeanClassLoaderAware, InitializingBean {private ClassLoader classLoader;/*** Name of the datasource. Default to "testdb" when using an embedded database.*/private String name;
以:spring.datasource开头的配置既可以,配置我们自己的数据源
3. yml配置:
spring:datasource:url: jdbc:mysql://127.0.0.1:yuhl?useSSL=falsedriver-class-name: com.mysql.jdbc.Driverusername: rootpassword: root#type就是实现了DataSource数据源,可以换成其他的哦!前提,需要引入其他数据源的依赖先。type: com.zaxxer.hikari.HikariDataSource
3. 使用的时候注入数据源接口
@RestController
public class HelloController {@AutowiredDataSource dataSource;@RequestMapping("/hello")public String hello() {System.out.println("dataSource" + dataSource);return "hello";}
}
4. 测试
type: com.zaxxer.hikari.HikariDataSource:
如果我们把type换了,会怎样嗯?肯定就换成别的数据源了。
下面会介绍使用druid数据源。
5. 总结
使用数据源时:
1. 引入依赖
2. 配置yml即可使用,
3. 中间boot做了什么事:autoconfiguration和properties做到注入。
4. 使用时引用即可使用
下一篇:15-Springboot其他数据源配置之Druid https://blog.csdn.net/fsjwin/article/details/109742300
14-Springboot默认数据源配置HikariDataSource相关推荐
- Springboot多数据源配置详解
Springboot多数据源配置详解 概念 配置 多数据源使用 概念 一般来说,我们正常的业务只涉及一个数据源,在特定的业务场景中需要使用多个数据源的情况,就需要配置多个数据源来满足特定的业务需求.本 ...
- springboot 默认日志配置以及更换其他日志配置
springboot 默认日志配置 最简单的打印Sql日志 方法一 此方法无需改动直接复制即可使用 #打印SQL mybatis.configuration.log-impl=org.apache.i ...
- springboot 多数据源配置的几种方式
springboot多数据源配置的三种方式 application.yml配置 1.@Ds("配置数据源名称") 引入依赖 <dependency> <group ...
- springboot默认数据源如何设置连接数_Spring Boot系列之配置数据库连接池
在实际的应用开发中,与数据库交互通常使用数据库连接池来重用Connection对象,减少资源消耗. Spring Boot 的数据源是自动配置的.在 Spring Boot 2.2.1 版本中,有几种 ...
- SpringBoot 之数据源配置
文章目录 市面上的几种数据源比对 SpringBoot自动装配DataSource原理 HiKariCP 数据源配置 Druid 数据源配置 SpringBoot集成Druid连接池 Druid 多数 ...
- SpringBoot排除数据源配置,配置决定行为
项目场景: 最近接到一个需求,大概意思呢就是数据库连接不够用了,部分服务(分服务)就不需要配置数据源了,需要跟db打交道的地方全部改成rpc去调用具备db能力的服务(总服务) 问题描述: 其实需要改的 ...
- SpringBoot多数据源配置
作者平台: | CSDN:blog.csdn.net/qq_41153943 | 掘金:juejin.cn/user/651387- | 知乎:www.zhihu.com/people/1024- | ...
- springboot 多数据源配置,postgresql+mysql为例
由于项目需要,利用springboot配置多数据源,postgresql+mysql: 1.首先导入需要的依赖包,包的版本根据需要选择,本项目是spring-boot-starter-parent 2 ...
- springboot默认数据源如何设置连接数_spring boot基于DRUID数据源密码加密及数据源监控实现...
项目源码路径:https://github.com/Syske/learning-dome-code.git 前言 随着需求和技术的日益革新,spring boot框架是越来越流行,也越来越多地出现在 ...
最新文章
- 英特尔90亿美元卖掉「起家业务」,SK海力士接盘
- .NET(C#):使用Win32Exception类型处理Win32错误代码
- 时下最热开源大数据技术TOP10
- Python基础教程:json中load和loads区别
- 全球 Top 10 高材生赴神策数据的交流访问之旅
- 关于MULE ESB相关的介绍
- Java EE 7中包含哪些JSR?
- Autodesk View and Data API二次开发学习指南
- 2021-06-01 深入分析偏向锁、轻量级锁和重量级锁
- fruncm server sql 无法生成 线程_SQL Server无法生成FRunCM线程的解决方法
- 从“做什么”到“怎么做”,说说一只蚊子
- H2最完整的资料下载地址:
- Gym - 102163M
- ibm服务器vga没有信号,华硕主板vga和boot灯常亮显示器无信号
- matlab语音合成技术,基于MATLAB的语音处理 语音合成..doc
- 尚医通笔记-后台管理
- 灯泡窃听,照射出物联网的“深层黑洞”
- 美国印第安纳大州Purdue(普杜)大学的法国数学家Louis de Branges de Bourcia周二表示已经证明了黎曼猜想
- 常见的web攻击手段
- Stripe中的 googlePay 和 applePay (Java)
热门文章
- 3D模型欣赏:中国神话中的龙子睚眦的人形诠释
- java 实现excel中上下角标处理实现原理
- 揭秘!今年最好高薪就业的专业!
- windows服务器查看型号,Windows服务器查看内存型号
- 【python】词性标注结合镜像分词
- v2ray 搭建的服务器连接后出现超时
- 2021年12月远程网络教育大学英语B统考题库考试题(完整最新)
- java怎么调用手机手电_android 手电筒的实现
- 学习Swift写iOS?那写安卓和WinPhone呢?请看一石三鸟终极解决方案 - Silver!
- 使用Xamarin.Android中的Google登录OAuth 2.0对用户进行身份验证