本文主要是介绍数据源自动配置(DataSourceAutoConfiguration),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数据源自动配置(DataSourceAutoConfiguration)
- 1. 数据源自动配置支持功能一览
- 2. 配置H2嵌入式数据库
- 2.1 添加H2数据库依赖
- 2.2 配置H2数据库
- 2.3 数据源配置
- 2.4 Hikari连接池配置
- 2.5 数据源预置Schema和数据信息
- 3. H2控制台
- 3.1 访问H2控制台
- 3.2 查看预置数据
- 4. MYSQL数据源配置参考
- 参考
1. 数据源自动配置支持功能一览
- 嵌入式数据库支持,支持 H2, Derby,HSQL 等嵌入式数据库;
- 支持 Hikari, Tomcat, DBCP2, Generic 等多种数据库连接池配置;Hikari是默认的数据库连接池,号称是Java平台最快的。
- 通过执行脚本初始化数据源;
- 数据库连接池Metadata Provider支持;
2. 配置H2嵌入式数据库
2.1 添加H2数据库依赖
<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId>
</dependency>
2.2 配置H2数据库
spring: h2:console:# 控制台访问路径path: /h2-console# 是否启用控制台enabled: true# 是否允许远程访问settings:web-allow-others: true
2.3 数据源配置
spring:datasource:# 嵌入式数据库连接方式embeddedDatabaseConnection: EmbeddedDatabaseConnection.H2# 数据库名称name: sbia_demo# schema脚本schema: classpath:sbia_demo_schema.sql# 数据脚本data: classpath:sbia_demo_data.sql# 连接池类型type: com.zaxxer.hikari.HikariDataSource
2.4 Hikari连接池配置
spring:hikari: ## Hikari 连接池配置 ------ 详细配置请访问:https://github.com/brettwooldridge/HikariCP## 最小空闲连接数量minimum-idle: 5## 空闲连接存活最大时间,默认600000(10分钟)idle-timeout: 180000## 连接池最大连接数,默认是10maximum-pool-size: 10## 此属性控制从池返回的连接的默认自动提交行为,默认值:trueauto-commit: true## 连接池名字pool-name: MyHikariCP## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟max-lifetime: 1800000## 数据库连接超时时间,默认30秒,即30000connection-timeout: 30000connection-test-query: SELECT 1
2.5 数据源预置Schema和数据信息
schema
CREATE TABLE `demo_user` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',`code` varchar(20) NOT NULL DEFAULT '' COMMENT '编码',`name` varchar(20) NOT NULL DEFAULT '' COMMENT '名字',`birthday` date NOT NULL COMMENT '生日',`sex` tinyint(4) NOT NULL COMMENT '性别',`demo` varchar(100) DEFAULT NULL COMMENT '备注',`create_user` varchar(20) NOT NULL DEFAULT '' COMMENT '创建用户',`create_time` datetime NOT NULL COMMENT '创建时间',`update_user` varchar(20) DEFAULT NULL COMMENT '更新用户',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳',`dr` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除标识位。0:未删除;1:已删除',PRIMARY KEY (`id`)
);
data
INSERT INTO `demo_user` (`id`, `code`, `name`, `birthday`, `sex`, `demo`, `create_user`, `create_time`, `update_user`, `update_time`, `ts`, `dr`)
VALUES(1,'zhangsan','张三','1983-01-01',1,NULL,'system','2019-08-08 00:00:00','system','2019-08-08 00:00:00','2019-08-14 16:28:32',0),(8,'lisi','李四','1984-01-01',1,NULL,'system','2019-08-08 00:00:00','system','2019-08-08 00:00:00','2019-08-14 16:29:30',0),(9,'wangermazi','王二麻子','1985-01-01',1,NULL,'system','2019-08-08 00:00:00','system','2019-08-08 00:00:00','2019-08-14 16:29:47',0);
3. H2控制台
3.1 访问H2控制台
访问URL: http://localhost:8080/h2-console
JDBC URL: jdbc:h2:mem:sbia_demo;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
3.2 查看预置数据
可以看到预置的DEMO_USER表以及预置数据。
4. MYSQL数据源配置参考
Maven Dependency
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.45</version>
</dependency>
Configuration File
## MYSQL数据库配置
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/sbia_demo?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
spring.datasource.username = user
spring.datasource.password = password
参考
Springboot 模块分析 —— DataSourceAutoConfiguration 解析
Springboot 源码分析 —— 自动运行 SQL 文件解析
HikariCP连接池及其在springboot中的配置
Springboot 配置H2数据库
这篇关于数据源自动配置(DataSourceAutoConfiguration)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!