SpringBoot3配置文件的使用技巧分享
引言
SpringBoot 的核心優(yōu)勢(shì)之一便是“約定大于配置”,無需繁瑣的 XML 配置,僅通過簡(jiǎn)單的配置文件就能完成項(xiàng)目的個(gè)性化定制。而 SpringBoot3 作為新一代主流版本,在配置文件的支持上延續(xù)了簡(jiǎn)潔性,同時(shí)優(yōu)化了部分特性、新增了一些實(shí)用功能,適配 Java 17+ 的語法規(guī)范,讓配置更加靈活、高效。本文將從配置文件的核心類型、基礎(chǔ)使用、高級(jí)特性、最佳實(shí)踐四個(gè)維度,全方位拆解 SpringBoot3 配置文件的使用技巧,助力開發(fā)者避開坑點(diǎn)、高效上手。
一、SpringBoot3 配置文件的核心類型(重中之重)
SpringBoot3 支持多種格式的配置文件,其中最常用、最核心的有 3 種,分別是 .properties、.yml(推薦)、.yaml,三者本質(zhì)上功能一致,僅語法格式和可讀性存在差異,同時(shí) SpringBoot3 對(duì)這三種格式的加載優(yōu)先級(jí)和解析邏輯做了細(xì)微優(yōu)化,更貼合現(xiàn)代開發(fā)習(xí)慣。
1.1 三種核心配置文件對(duì)比
先通過一張表格,快速理清三者的核心區(qū)別,方便開發(fā)者根據(jù)項(xiàng)目場(chǎng)景選擇:
| 配置文件格式 | 語法特點(diǎn) | 可讀性 | 適用場(chǎng)景 | SpringBoot3 注意點(diǎn) |
|---|---|---|---|---|
| application.properties | 鍵值對(duì)格式(key=value),語法簡(jiǎn)單,無縮進(jìn)要求 | 配置項(xiàng)較少時(shí)良好,過多時(shí)雜亂 | 簡(jiǎn)單項(xiàng)目、快速測(cè)試、配置項(xiàng)少的場(chǎng)景 | 默認(rèn)編碼 UTF-8(SpringBoot3 取消了對(duì) GBK 的默認(rèn)支持,需手動(dòng)配置) |
| application.yml | 樹形結(jié)構(gòu),依賴縮進(jìn)(2 個(gè)空格,禁止 tab),支持?jǐn)?shù)組、對(duì)象、占位符 | 極佳,配置項(xiàng)越多越清晰,層次分明 | 中大型項(xiàng)目、配置項(xiàng)多、需區(qū)分層次的場(chǎng)景(推薦) | 支持 YAML 1.2 規(guī)范,新增對(duì)錨點(diǎn)、合并的完善支持 |
| application.yaml | 與 .yml 語法完全一致,僅后綴不同 | 與 .yml 一致 | 同 .yml,部分團(tuán)隊(duì)規(guī)范要求使用該后綴 | SpringBoot3 中與 .yml 優(yōu)先級(jí)一致,無區(qū)別 |
1.2 加載優(yōu)先級(jí)(關(guān)鍵避坑點(diǎn))
SpringBoot3 會(huì)自動(dòng)掃描類路徑(classpath)下的配置文件,若存在多種格式的配置文件,加載優(yōu)先級(jí)遵循:application.properties > application.yml > application.yaml。
注意:優(yōu)先級(jí)高的配置文件會(huì)覆蓋優(yōu)先級(jí)低的同名配置項(xiàng)。例如,properties 中配置了 server.port=8080,yml 中配置了 server.port=8081,最終生效的是 8080,因?yàn)?properties 優(yōu)先級(jí)更高。
實(shí)際開發(fā)中,建議只使用一種格式(推薦 yml),避免多種格式混用導(dǎo)致配置沖突、難以排查。
二、基礎(chǔ)使用:核心配置項(xiàng)與語法實(shí)戰(zhàn)
無論使用哪種格式,配置文件的核心作用都是“覆蓋 SpringBoot 的默認(rèn)配置”和“配置自定義屬性”。本節(jié)將以最推薦的 yml 格式為例,結(jié)合 SpringBoot3 的核心配置項(xiàng),講解基礎(chǔ)語法與實(shí)戰(zhàn)用法,同時(shí)對(duì)比 properties 格式的差異。
2.1 核心默認(rèn)配置(常用必記)
SpringBoot3 內(nèi)置了大量默認(rèn)配置(如服務(wù)器端口、數(shù)據(jù)庫連接、日志級(jí)別等),開發(fā)者只需在配置文件中修改對(duì)應(yīng)項(xiàng),即可覆蓋默認(rèn)值。以下是最常用的核心配置項(xiàng),附 yml 和 properties 兩種格式示例:
(1)服務(wù)器配置
# application.yml 格式
server:
port: 8080 # 服務(wù)器端口,默認(rèn) 8080
servlet:
context-path: /springboot3 # 項(xiàng)目上下文路徑,默認(rèn) /(空路徑)
tomcat:
uri-encoding: UTF-8 # Tomcat 編碼,SpringBoot3 默認(rèn) UTF-8# application.properties 格式 server.port=8080 server.servlet.context-path=/springboot3 server.tomcat.uri-encoding=UTF-8
(2)日志配置
SpringBoot3 默認(rèn)使用 Logback 日志框架,配置文件中可指定日志級(jí)別、輸出路徑、日志格式:
# application.yml 格式
logging:
level:
root: INFO # 根日志級(jí)別(DEBUG/INFO/WARN/ERROR)
com.example: DEBUG # 自定義包的日志級(jí)別(開發(fā)環(huán)境常用 DEBUG)
file:
name: logs/springboot3.log # 日志輸出文件路徑
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n" # 控制臺(tái)日志格式
file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n" # 文件日志格式(3)數(shù)據(jù)庫配置(以 MySQL 為例)
SpringBoot3 整合 Spring Data JPA/MyBatis 時(shí),需配置數(shù)據(jù)庫連接信息,注意 SpringBoot3 對(duì) MySQL 驅(qū)動(dòng)的版本要求(推薦 8.0+):
# application.yml 格式
spring:
datasource:
url: jdbc:mysql://localhost:3306/springboot3_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root # 數(shù)據(jù)庫用戶名
password: 123456 # 數(shù)據(jù)庫密碼
driver-class-name: com.mysql.cj.jdbc.Driver # MySQL 8.0+ 驅(qū)動(dòng)類(SpringBoot3 可省略,自動(dòng)識(shí)別)
jpa:
hibernate:
ddl-auto: update # 自動(dòng)生成表結(jié)構(gòu)(開發(fā)環(huán)境可用,生產(chǎn)環(huán)境禁用)
show-sql: true # 控制臺(tái)打印 SQL 語句2.2 自定義配置項(xiàng)(實(shí)戰(zhàn)高頻)
除了默認(rèn)配置項(xiàng),開發(fā)者還可以在配置文件中定義自定義屬性,用于項(xiàng)目中的個(gè)性化配置(如接口前綴、第三方密鑰、業(yè)務(wù)參數(shù)等),再通過注解注入到代碼中使用。
(1)自定義簡(jiǎn)單屬性
先在 yml 中定義自定義屬性:
# 自定義配置項(xiàng)(前綴可自定義,建議與項(xiàng)目/模塊名一致) demo: name: SpringBoot3-Config version: 1.0.0 description: 這是 SpringBoot3 配置文件實(shí)戰(zhàn)示例 enable: true # 布爾類型 max-size: 100 # 數(shù)字類型
再通過 @Value 注解注入到類中(適用于簡(jiǎn)單屬性,無需綁定對(duì)象):
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ConfigController {
// 注入自定義屬性,${} 為占位符,指定配置項(xiàng)的鍵
@Value("${demo.name}")
private String demoName;
@Value("${demo.version}")
private String demoVersion;
// 布爾類型注入,無需轉(zhuǎn)換,SpringBoot 自動(dòng)解析
@Value("${demo.enable:true}") // 冒號(hào)后為默認(rèn)值,若配置文件中無該屬性,使用默認(rèn)值 true
private boolean demoEnable;
@GetMapping("/config/simple")
public String getSimpleConfig() {
return "demoName: " + demoName + ", demoVersion: " + demoVersion + ", demoEnable: " + demoEnable;
}
}(2)自定義復(fù)雜屬性(對(duì)象、數(shù)組)
若自定義屬性較多、層次復(fù)雜(如對(duì)象、數(shù)組),使用 @Value 注入會(huì)過于繁瑣,此時(shí)推薦使用 @ConfigurationProperties 注解,將配置項(xiàng)綁定到實(shí)體類中,更簡(jiǎn)潔、可維護(hù)。
第一步:定義實(shí)體類,綁定配置項(xiàng)(需添加 @ConfigurationProperties 注解,指定前綴):
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
// 綁定配置文件中前綴為 demo 的配置項(xiàng)
@Component // 注入到 Spring 容器中,否則無法被掃描到
@ConfigurationProperties(prefix = "demo")
@Data // Lombok 注解,簡(jiǎn)化 getter/setter(推薦使用)
public class DemoConfig {
@NotBlank(message = "demo.name 不能為空") // 支持 JSR380 校驗(yàn),SpringBoot3 內(nèi)置支持
private String name;
private String version;
private String description;
private boolean enable;
private Integer maxSize;
// 數(shù)組/集合類型配置
private List<String> authors;
// 嵌套對(duì)象配置(復(fù)雜層次)
private DatabaseConfig database;
// 嵌套對(duì)象,無需添加 @Component,會(huì)被自動(dòng)綁定
@Data
public static class DatabaseConfig {
private String url;
private String username;
private String password;
}
}第二步:在配置文件中定義對(duì)應(yīng)的復(fù)雜配置項(xiàng):
demo:
name: SpringBoot3-Config
version: 1.0.0
description: 這是 SpringBoot3 配置文件實(shí)戰(zhàn)示例
enable: true
max-size: 100
authors: [張三, 李四, 王五] # 數(shù)組格式(兩種寫法均可)
# authors:
# - 張三
# - 李四
# - 王五
database: # 嵌套對(duì)象配置
url: jdbc:mysql://localhost:3306/test_db
username: root
password: 123456第三步:注入實(shí)體類,使用配置項(xiàng):
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ConfigController {
@Autowired
private DemoConfig demoConfig; // 注入綁定好的實(shí)體類
@GetMapping("/config/complex")
public DemoConfig getComplexConfig() {
// 直接返回實(shí)體類,SpringBoot 自動(dòng)轉(zhuǎn)為 JSON
return demoConfig;
}
}注意:SpringBoot3 中,@ConfigurationProperties 注解無需額外添加 @EnableConfigurationProperties 注解(除非實(shí)體類未添加 @Component),SpringBoot3 會(huì)自動(dòng)掃描并綁定帶有 @ConfigurationProperties 的組件。
三、高級(jí)特性:SpringBoot3 新增與優(yōu)化功能
SpringBoot3 在配置文件的支持上,基于 SpringBoot2 做了不少優(yōu)化,同時(shí)新增了一些實(shí)用特性,進(jìn)一步提升配置的靈活性和可維護(hù)性,以下是重點(diǎn)特性講解。
3.1 配置文件占位符增強(qiáng)
SpringBoot3 支持在配置文件中使用占位符,實(shí)現(xiàn)配置項(xiàng)的復(fù)用、動(dòng)態(tài)賦值,占位符的用法主要有 3 種,新增了對(duì)“環(huán)境變量占位符”的優(yōu)化支持:
demo:
# 1. 引用當(dāng)前配置文件中的其他配置項(xiàng)
name: SpringBoot3
full-name: ${demo.name}-Config-Demo
# 2. 引用系統(tǒng)環(huán)境變量(SpringBoot3 優(yōu)化了環(huán)境變量的解析,支持更多系統(tǒng))
user-home: ${user.home}
# 3. 引用命令行參數(shù)(啟動(dòng)時(shí)通過 --key=value 傳入,優(yōu)先級(jí)高于配置文件)
port: ${server.port:8080} # 冒號(hào)后為默認(rèn)值,若命令行未傳入,使用 80803.2 Profile 多環(huán)境配置(企業(yè)級(jí)實(shí)戰(zhàn)必備)
實(shí)際開發(fā)中,項(xiàng)目會(huì)有多個(gè)環(huán)境(開發(fā)環(huán)境 dev、測(cè)試環(huán)境 test、生產(chǎn)環(huán)境 prod),不同環(huán)境的配置項(xiàng)(如數(shù)據(jù)庫地址、端口、日志級(jí)別)不同。SpringBoot3 的 Profile 功能可實(shí)現(xiàn)“多環(huán)境配置分離”,無需手動(dòng)修改配置文件,只需指定環(huán)境即可切換。
(1)多環(huán)境配置文件命名規(guī)范
SpringBoot3 規(guī)定,多環(huán)境配置文件的命名格式為:application-{profile}.yml/properties,其中 {profile} 為環(huán)境標(biāo)識(shí)(如 dev、test、prod)。
示例:
- application-dev.yml:開發(fā)環(huán)境配置
- application-test.yml:測(cè)試環(huán)境配置
- application-prod.yml:生產(chǎn)環(huán)境配置
- application.yml:全局配置(所有環(huán)境共用的配置,會(huì)被環(huán)境配置覆蓋同名項(xiàng))
(2)激活指定環(huán)境(5種方式,按優(yōu)先級(jí)從高到低)
優(yōu)先級(jí)越高,越能覆蓋其他方式的配置,實(shí)際開發(fā)中推薦使用“命令行參數(shù)”或“環(huán)境變量”方式,靈活切換環(huán)境。
- 命令行參數(shù)(最高優(yōu)先級(jí)):?jiǎn)?dòng)項(xiàng)目時(shí)傳入,適合生產(chǎn)環(huán)境、測(cè)試環(huán)境快速切換 示例:
java -jar springboot3-config.jar --spring.profiles.active=prod - 環(huán)境變量:在操作系統(tǒng)中配置環(huán)境變量
SPRING_PROFILES_ACTIVE=dev,SpringBoot3 會(huì)自動(dòng)識(shí)別 - 配置文件指定:在全局配置文件(application.yml)中配置,適合開發(fā)環(huán)境默認(rèn)激活
spring: profiles: active: dev - Java 系統(tǒng)屬性:?jiǎn)?dòng)時(shí)傳入
-Dspring.profiles.active=test示例:java -Dspring.profiles.active=test -jar springboot3-config.jar - 編程式激活:通過代碼指定環(huán)境(不推薦,靈活性差),需實(shí)現(xiàn)
EnvironmentPostProcessor接口
(3)多環(huán)境配置實(shí)戰(zhàn)示例
全局配置(application.yml):
spring:
profiles:
active: dev # 默認(rèn)激活開發(fā)環(huán)境
# 全局共用配置(所有環(huán)境都生效)
application:
name: springboot3-config-demo開發(fā)環(huán)境(application-dev.yml):
server:
port: 8080 # 開發(fā)環(huán)境端口 8080
logging:
level:
root: DEBUG # 開發(fā)環(huán)境日志級(jí)別 DEBUG,方便調(diào)試
spring:
datasource:
url: jdbc:mysql://localhost:3306/dev_db # 開發(fā)環(huán)境數(shù)據(jù)庫
username: root
password: 123456生產(chǎn)環(huán)境(application-prod.yml):
server:
port: 80 # 生產(chǎn)環(huán)境端口 80
logging:
level:
root: ERROR # 生產(chǎn)環(huán)境日志級(jí)別 ERROR,減少日志輸出
spring:
datasource:
url: jdbc:mysql://192.168.1.100:3306/prod_db # 生產(chǎn)環(huán)境數(shù)據(jù)庫
username: prod_user
password: prod_123456 # 生產(chǎn)環(huán)境密碼加密(下文會(huì)講)3.3 配置文件加密(生產(chǎn)環(huán)境必備)
生產(chǎn)環(huán)境中,配置文件中會(huì)包含敏感信息(如數(shù)據(jù)庫密碼、第三方接口密鑰、token 等),若明文存儲(chǔ),會(huì)存在安全隱患。SpringBoot3 推薦使用 spring-boot-starter-encrypt(或第三方工具如 Jasypt)實(shí)現(xiàn)配置加密,避免敏感信息泄露。
(1)Jasypt 加密實(shí)戰(zhàn)(最常用)
第一步:引入 Jasypt 依賴(SpringBoot3 適配版本):
<!-- pom.xml -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version> <!-- 適配 SpringBoot3 -->
</dependency>第二步:配置加密密鑰(推薦通過命令行/環(huán)境變量傳入,避免明文寫在配置文件中):
# application-prod.yml
jasypt:
encryptor:
password: ${JASYPT_ENCRYPT_PASSWORD} # 加密密鑰,從環(huán)境變量獲取
algorithm: PBEWithMD5AndDES # 加密算法(默認(rèn),可自定義)第三步:生成加密后的敏感信息(通過代碼或 Jasypt 工具生成):
import org.jasypt.encryption.StringEncryptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
// 項(xiàng)目啟動(dòng)時(shí)生成加密后的密碼(僅開發(fā)時(shí)使用,生產(chǎn)時(shí)刪除)
@Component
public class JasyptTest implements CommandLineRunner {
@Autowired
private StringEncryptor stringEncryptor;
@Override
public void run(String... args) throws Exception {
// 加密明文密碼(prod_123456)
String encryptPassword = stringEncryptor.encrypt("prod_123456");
System.out.println("加密后的密碼:" + encryptPassword);
// 輸出示例:EV7k8Z7xQ+3a9B1c2D3e4F5g6H7i8J9k0L1m2N3o4P5q6R7s8T9u0V1w2X3y4Z5
}
}第四步:在配置文件中使用加密后的信息(用 ENC() 包裹):
spring:
datasource:
password: ENC(EV7k8Z7xQ+3a9B1c2D3e4F5g6H7i8J9k0L1m2N3o4P5q6R7s8T9u0V1w2X3y4Z5)第五步:?jiǎn)?dòng)項(xiàng)目時(shí)傳入加密密鑰(生產(chǎn)環(huán)境):
java -jar springboot3-config.jar --spring.profiles.active=prod --jasypt.encryptor.password=你的密鑰
3.4 外部配置源支持(SpringBoot3 優(yōu)化)
SpringBoot3 支持多種外部配置源,可實(shí)現(xiàn)配置的動(dòng)態(tài)刷新、集中管理,適合分布式項(xiàng)目,常用的外部配置源有:
- 命令行參數(shù):
--key=value(優(yōu)先級(jí)最高) - 系統(tǒng)環(huán)境變量:適合容器化部署(Docker、K8s)時(shí)配置
- 配置中心:如 Nacos、Apollo(企業(yè)級(jí)首選,可實(shí)現(xiàn)配置集中管理、動(dòng)態(tài)刷新,無需重啟項(xiàng)目)
- 外部配置文件:將配置文件放在項(xiàng)目外部(如服務(wù)器磁盤),通過
--spring.config.location指定路徑,方便修改配置無需重新打包
示例:指定外部配置文件啟動(dòng):
java -jar springboot3-config.jar -spring.config.location=/opt/config/application-prod.yml
四、最佳實(shí)踐(避坑指南,企業(yè)級(jí)規(guī)范)
結(jié)合 SpringBoot3 的特性和實(shí)際開發(fā)經(jīng)驗(yàn),總結(jié)以下配置文件使用最佳實(shí)踐,避免踩坑、提升項(xiàng)目可維護(hù)性。
4.1 配置文件格式規(guī)范
- 統(tǒng)一使用 yml 格式(推薦),層次清晰、可讀性高,避免多種格式混用。
- yml 縮進(jìn)嚴(yán)格遵循 2 個(gè)空格,禁止使用 tab,否則會(huì)導(dǎo)致配置解析失敗(常見坑點(diǎn))。
- 配置項(xiàng)命名規(guī)范:使用小寫字母 + 連字符(kebab-case),如
server.context-path,避免使用駝峰(camelCase)或下劃線(snake_case)。
4.2 配置分離與復(fù)用
- 多環(huán)境配置分離:使用 Profile 功能,將 dev、test、prod 環(huán)境的配置分開,全局配置只放共用項(xiàng)。
- 復(fù)雜配置復(fù)用:使用 yml 的錨點(diǎn)(&)和合并(<<)功能,復(fù)用重復(fù)配置項(xiàng)(SpringBoot3 支持 YAML 1.2 錨點(diǎn)語法)。
# 錨點(diǎn)復(fù)用示例
common-db: &common-db # 定義錨點(diǎn),名稱為 common-db
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
demo:
database:
<<: *common-db # 合并錨點(diǎn)配置,復(fù)用 driver-class-name 和 username
url: jdbc:mysql://localhost:3306/dev_db
password: 1234564.3 敏感信息處理
- 生產(chǎn)環(huán)境中,敏感信息(密碼、密鑰等)必須加密存儲(chǔ),禁止明文寫在配置文件中(推薦使用 Jasypt 或配置中心加密)。
- 加密密鑰禁止放在配置文件中,通過命令行、環(huán)境變量傳入,避免密鑰泄露。
4.4 配置調(diào)試與排查
- 開發(fā)環(huán)境中,可開啟配置調(diào)試日志,查看配置加載情況:
logging.level.org.springframework.boot.context.config=DEBUG。 - 配置不生效時(shí),優(yōu)先檢查:優(yōu)先級(jí)是否正確、配置項(xiàng)名稱是否寫錯(cuò)、yml 縮進(jìn)是否正確。
- 使用
@ConfigurationProperties時(shí),添加 JSR380 校驗(yàn)注解(如@NotBlank),避免配置項(xiàng)為空導(dǎo)致項(xiàng)目異常。
4.5 生產(chǎn)環(huán)境配置規(guī)范
- 生產(chǎn)環(huán)境禁止使用
spring.jpa.hibernate.ddl-auto=create/update,避免誤刪、修改數(shù)據(jù)庫表結(jié)構(gòu)。 - 生產(chǎn)環(huán)境日志級(jí)別設(shè)置為 ERROR/WARN,減少日志輸出,提升項(xiàng)目性能。
- 生產(chǎn)環(huán)境配置文件放在外部,或使用配置中心,方便動(dòng)態(tài)修改配置、無需重啟項(xiàng)目。
五、總結(jié)
SpringBoot3 的配置文件是項(xiàng)目開發(fā)的基礎(chǔ),其核心是“約定大于配置”,通過簡(jiǎn)潔的語法和豐富的特性,實(shí)現(xiàn)項(xiàng)目的個(gè)性化定制。本文從核心類型、基礎(chǔ)使用、高級(jí)特性、最佳實(shí)踐四個(gè)維度,詳細(xì)講解了 SpringBoot3 配置文件的使用技巧,重點(diǎn)突出了 SpringBoot3 的優(yōu)化點(diǎn)(如 YAML 1.2 支持、環(huán)境變量解析優(yōu)化、配置綁定簡(jiǎn)化)和企業(yè)級(jí)實(shí)戰(zhàn)場(chǎng)景(多環(huán)境配置、敏感信息加密、外部配置源)。
實(shí)際開發(fā)中,需結(jié)合項(xiàng)目場(chǎng)景選擇合適的配置格式和配置方式,遵循最佳實(shí)踐,避免踩坑,同時(shí)注重配置的可維護(hù)性、安全性和靈活性。掌握 SpringBoot3 配置文件的使用,能極大提升開發(fā)效率,為后續(xù)項(xiàng)目擴(kuò)展(如分布式、容器化)打下堅(jiān)實(shí)基礎(chǔ)。
以上就是SpringBoot3配置文件的使用技巧分享的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot3配置文件使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
logback的isDebugEnabled日志配置級(jí)別源碼解析
這篇文章主要為大家介紹了logback的isDebugEnabled日志配置級(jí)別源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Spring Cloud Config 使用本地配置文件方式
這篇文章主要介紹了Spring Cloud Config 使用本地配置文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringData JPA中查詢接口Repository的使用
本文主要介紹了SpringData JPA中查詢接口Repository的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
利用SpringBoot實(shí)現(xiàn)多數(shù)據(jù)源的兩種方式總結(jié)
關(guān)于動(dòng)態(tài)數(shù)據(jù)源的切換的方案有很多,核心只有兩種,一種是構(gòu)建多套環(huán)境,另一種是基于spring原生的AbstractRoutingDataSource切換,這篇文章主要給大家介紹了關(guān)于利用SpringBoot實(shí)現(xiàn)多數(shù)據(jù)源的兩種方式,需要的朋友可以參考下2021-10-10
Thread類interrupt interrupted及isInterrupted區(qū)別
這篇文章主要為大家介紹了Thread類interrupt interrupted及isInterrupted區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
關(guān)于SpringCloud灰度發(fā)布的實(shí)現(xiàn)
這篇文章主要介紹了關(guān)于SpringCloud灰度發(fā)布的實(shí)現(xiàn),灰度發(fā)布又稱金絲雀發(fā)布,是在系統(tǒng)升級(jí)的時(shí)候能夠平滑過渡的一種發(fā)布方式,灰度發(fā)布可以保證整體系統(tǒng)的穩(wěn)定,在初始灰度的時(shí)候就可以發(fā)現(xiàn)、調(diào)整問題,以保證其影響度,需要的朋友可以參考下2023-08-08

