“Spring Boot连MySQL”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) |
||
第18行: | 第18行: | ||
</project> | </project> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |||
==== 添加依赖 ==== | ==== 添加依赖 ==== | ||
第44行: | 第47行: | ||
</project> | </project> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
第57行: | 第57行: | ||
password: 123456 | password: 123456 | ||
# type: com.zaxxer.hikari.HikariDataSource | # type: com.zaxxer.hikari.HikariDataSource | ||
+ | </syntaxhighlight>默认使用的 数据源/连接池 实现就是 Hikari | ||
+ | |||
+ | 可以查看 spring-boot-autoconfigure-x.x.x.jar 中的自动配置类:<syntaxhighlight lang="java"> | ||
+ | package org.springframework.boot.autoconfigure.jdbc; | ||
+ | …… | ||
+ | abstract class DataSourceConfiguration { | ||
+ | @Configuration(proxyBeanMethods = false) | ||
+ | @ConditionalOnClass(HikariDataSource.class) | ||
+ | @ConditionalOnMissingBean(DataSource.class) | ||
+ | @ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.zaxxer.hikari.HikariDataSource", | ||
+ | matchIfMissing = true) | ||
+ | static class Hikari { | ||
+ | |||
+ | @Bean | ||
+ | @ConfigurationProperties(prefix = "spring.datasource.hikari") | ||
+ | HikariDataSource dataSource(DataSourceProperties properties) { | ||
+ | HikariDataSource dataSource = createDataSource(properties, HikariDataSource.class); | ||
+ | if (StringUtils.hasText(properties.getName())) { | ||
+ | dataSource.setPoolName(properties.getName()); | ||
+ | } | ||
+ | return dataSource; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | …… | ||
</syntaxhighlight> | </syntaxhighlight> |
2022年12月9日 (五) 18:27的版本
https://www.bilibili.com/video/BV19K4y1L7MT/?p=60
pom.xml
继承
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
……
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
</parent>
……
</project>
添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
……
<dependencies>
……
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
……
</dependencies>
……
</project>
application.xml
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/guns
username: root
password: 123456
# type: com.zaxxer.hikari.HikariDataSource
默认使用的 数据源/连接池 实现就是 Hikari 可以查看 spring-boot-autoconfigure-x.x.x.jar 中的自动配置类:
package org.springframework.boot.autoconfigure.jdbc;
……
abstract class DataSourceConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(HikariDataSource.class)
@ConditionalOnMissingBean(DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.zaxxer.hikari.HikariDataSource",
matchIfMissing = true)
static class Hikari {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.hikari")
HikariDataSource dataSource(DataSourceProperties properties) {
HikariDataSource dataSource = createDataSource(properties, HikariDataSource.class);
if (StringUtils.hasText(properties.getName())) {
dataSource.setPoolName(properties.getName());
}
return dataSource;
}
}
……