Spring Boot 配置文件常用配置屬性詳解(application.properties / application.yml)

前言

Spring Boot 的一大優勢就是通過簡單的配置文件即可快速定制應用行為,而無需編寫大量 XML 配置或 Java 代碼。Spring Boot 使用 application.propertiesapplication.yml 作為核心配置文件,支持豐富的配置屬性。

本文將詳細介紹 Spring Boot 常用的配置屬性,包括:

  1. 服務器配置
  2. 數據源配置
  3. JPA / Hibernate 配置
  4. 日志配置
  5. Thymeleaf / 模板引擎配置
  6. 安全配置(Spring Security)
  7. 緩存配置
  8. 任務調度配置
  9. 國際化配置
  10. 其他常用配置

1. 服務器相關配置(Server Properties)

控制嵌入式服務器(如 Tomcat、Jetty)的行為。

application.properties 示例:

server.port=8080
server.servlet.context-path=/api
server.tomcat.max-connections=10000
server.tomcat.max-http-form-post-size=20MB
server.error.whitelabel.enabled=false

application.yml 示例:

server:port: 8080servlet:context-path: /apitomcat:max-connections: 10000max-http-form-post-size: 20MBerror:whitelabel:enabled: false

常見配置說明:

屬性名說明
server.port應用監聽的端口,默認 8080
server.servlet.context-path應用的上下文路徑,默認為空
server.tomcat.max-connectionsTomcat 最大連接數
server.tomcat.max-http-form-post-sizeHTTP 表單 POST 最大大小
server.error.whitelabel.enabled是否啟用默認錯誤頁面(關閉后返回 JSON 錯誤信息)

2. 數據源配置(DataSource Properties)

用于配置數據庫連接池,常見如 HikariCP、Tomcat JDBC、DBCP2 等。

application.properties 示例:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.idle-timeout=30000

application.yml 示例:

spring:datasource:url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTCusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driverhikari:maximum-pool-size: 10idle-timeout: 30000

常見配置說明:

屬性名說明
spring.datasource.url數據庫連接 URL
spring.datasource.username數據庫用戶名
spring.datasource.password數據庫密碼
spring.datasource.driver-class-name數據庫驅動類名
spring.datasource.hikari.*HikariCP 特定配置(如最大連接數、空閑超時)

3. JPA / Hibernate 配置(Spring Data JPA)

用于配置 JPA 和 Hibernate 的行為。

application.properties 示例:

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.open-in-view=false

application.yml 示例:

spring:jpa:hibernate:ddl-auto: updateshow-sql: trueproperties:hibernate:format_sql: truedialect: org.hibernate.dialect.MySQL8Dialectopen-in-view: false

常見配置說明:

屬性名說明
spring.jpa.hibernate.ddl-auto自動建表策略(create、update、validate、none)
spring.jpa.show-sql是否打印 SQL
spring.jpa.properties.hibernate.format_sql格式化 SQL
spring.jpa.properties.hibernate.dialectHibernate 方言
spring.jpa.open-in-view是否啟用 OpenEntityManagerInViewFilter(不推薦開啟)

4. 日志配置(Logging)

Spring Boot 支持 Logback、Log4j2、Java Util Logging 等日志框架。

application.properties 示例:

logging.level.root=INFO
logging.level.com.example.demo=DEBUG
logging.file.name=logs/app.log
logging.file.max-size=10MB
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n

application.yml 示例:

logging:level:root: INFOcom.example.demo: DEBUGfile:name: logs/app.logmax-size: 10MBpattern:console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"

常見配置說明:

屬性名說明
logging.level.*設置不同包的日志級別
logging.file.name日志輸出文件路徑
logging.file.max-size日志文件最大大小
logging.pattern.console控制臺日志輸出格式

5. 模板引擎配置(Thymeleaf)

如果你使用 Thymeleaf 模板引擎,可以配置緩存、模板路徑等。

application.properties 示例:

spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML
spring.thymeleaf.encoding=UTF-8

application.yml 示例:

spring:thymeleaf:cache: falseprefix: classpath:/templates/suffix: .htmlmode: HTMLencoding: UTF-8

6. 安全配置(Spring Security)

用于配置 Spring Security 的默認行為。

application.properties 示例:

spring.security.user.name=admin
spring.security.user.password=123456
spring.security.user.roles=USER,ADMIN

application.yml 示例:

spring:security:user:name: adminpassword: 123456roles:- USER- ADMIN

注意:實際項目中建議使用數據庫認證,而不是配置文件方式。


7. 緩存配置(Cache)

Spring Boot 支持多種緩存實現,如 Caffeine、EhCache、Redis 等。

application.properties 示例:

spring.cache.type=simple
spring.cache.cache-names=myCache
spring.cache.simple.initial-capacity=100
spring.cache.simple.max-entries=500

application.yml 示例:

spring:cache:type: simplecache-names: myCachesimple:initial-capacity: 100max-entries: 500

8. 任務調度配置(Scheduling)

啟用定時任務并配置線程池。

application.properties 示例:

spring.task.scheduling.pool.size=5

application.yml 示例:

spring:task:scheduling:pool:size: 5

在代碼中使用 @Scheduled 注解即可定義定時任務。


9. 國際化配置(i18n)

配置消息源和默認語言。

application.properties 示例:

spring.messages.basename=messages
spring.messages.encoding=UTF-8
spring.locale=zh

application.yml 示例:

spring:messages:basename: messagesencoding: UTF-8locale: zh

10. 其他常用配置

10.1 文件上傳配置

spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
spring:servlet:multipart:max-file-size: 10MBmax-request-size: 10MB

10.2 WebMvc 配置

spring.mvc.async.request-timeout=0
spring.mvc.format.date-time=yyyy-MM-dd HH:mm:ss
spring:mvc:async:request-timeout: 0format:date-time: yyyy-MM-dd HH:mm:ss

10.3 Actuator 配置

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
management:endpoints:web:exposure:include: "*"endpoint:health:show-details: always

總結

Spring Boot 的配置文件非常靈活,通過 application.propertiesapplication.yml 可以快速配置服務器、數據庫、日志、緩存、安全等多個模塊的行為。使用合適的配置,可以顯著提升開發效率和系統穩定性。

建議:在開發階段啟用更多調試信息(如 SQL 打印),在生產環境中關閉調試輸出并啟用緩存、日志分割等優化配置。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93096.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93096.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93096.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uni-appDay02

1.首頁-通用輪播組件 輪播圖組件需要再首頁和分類頁使用&#xff0c;封裝成通用組件 準備組件自動導入組件 <script setup lang"ts"> import XtxSwiper from /components/XtxSwiper.vue import CustomNavbar from ./components/CustomNavbar.vue </scrip…

FastAPI入門:請求體、查詢參數和字符串校驗、路徑參數和數值校驗

請求體 FastAPI 使用請求體從客戶端&#xff08;例如瀏覽器&#xff09;向 API 發送數據。請求體是客戶端發送給 API 的數據。響應體是 API 發送給客戶端的數據。 使用 Pydantic 模型聲明請求體&#xff0c;能充分利用它的功能和優點 from fastapi import FastAPI from pydanti…

Docker的docker-compose類比Spring的ApplicationContext

總一句話是&#xff1a;Docker Compose&#xff1a;集中化管理多個容器及其依賴的資源環境&#xff1b;ApplicationContext&#xff1a;集中化管理 多個Bean 及其運行所需的資源和依賴關系。 1. 整體概念 Docker Compose&#xff1a;用于定義和運行多容器 Docker 應用程序&…

Reason-before-Retrieve(CVPR 2025)

研究方向&#xff1a;Image Captioning論文全名&#xff1a;《Reason-before-Retrieve: One-Stage Reflective Chain-of-Thoughts for Training-Free Zero-Shot Composed Image Retrieval》1. 論文介紹組合圖像檢索&#xff08;CIR&#xff09;旨在檢索與參考圖像密切相似的目標…

Idefics2:構建視覺-語言模型時,什么是重要的

溫馨提示&#xff1a; 本篇文章已同步至"AI專題精講" Idefics2&#xff1a;構建視覺-語言模型時&#xff0c;什么是重要的 摘要 隨著large language models和vision transformers的進步&#xff0c;視覺-語言模型&#xff08;VLMs&#xff09;受到了越來越多的關注…

再談fpga開發(fpga調試方法)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】我們之前在學校學習c、c的時候&#xff0c;其實學校漏掉了很重要的一個教學環節&#xff0c;那就是調試、測試。很多時候我們代碼寫出來了&#xff…

C語言中的數據結構--棧和隊列(1)

前言本屆開始我們將對數據結構中棧的內容進行講解,那么廢話不多說,我們正式進入今天的學習棧棧是一種很特殊的線性表&#xff0c;它只能在固定的一端進行插入和刪除操作&#xff0c;進行數據的插入和刪除的一端叫做棧頂&#xff0c;另外一端叫做棧底&#xff0c;棧中的元素遵守…

字符串是數據結構還是數據類型?

比較糾結的一個問題&#xff0c;以下是在網上查到后總結的&#xff0c;不知道對不對&#xff0c;歡迎討論。這是個觸及計算機科學核心概念的精妙問題&#xff01;字符串既可以被視為一種數據類型&#xff0c;也可以被視為一種數據結構&#xff0c;這取決于你觀察的視角和討論的…

Cline與Cursor深度實戰指南:AI編程助手的革命性應用

引言 在AI編程工具快速發展的今天&#xff0c;Cline和Cursor作為兩款備受矚目的AI編程助手&#xff0c;正在重新定義開發者的工作方式。作為一名深度使用這兩款工具的開發者&#xff0c;我在過去一年的實踐中積累了豐富的經驗和獨到的見解。本文將從技術角度深入分析Cline和Cur…

根本是什么

根本是什么 根本沒有了&#xff0c;枝葉還在么&#xff1f; 沒有了內涵&#xff0c;外延還有么&#xff1f; 丟棄了根本&#xff0c;再嗨也是無意義&#xff0c;無根據空虛之樂罷了。 人之所行所言所思所想所念皆欲念、歷程感懷&#xff0c;情思。所謂得失過往&#xff0c;時空…

springboot基于Java的人力資源管理系統設計與實現

管理員&#xff1a;登錄&#xff0c;個人中心&#xff0c;部門管理&#xff0c;員工管理&#xff0c;培訓信息管理&#xff0c;員工獎勵管理&#xff0c;員工懲罰管理員工考核管理&#xff0c;調薪信息管理&#xff0c;員工調動管理&#xff0c;員工工資管理員工&#xff1a;注…

金字塔降低采樣

文章目錄image_scale.hppimage_scale.cppmainimage_scale.hpp #ifndef IMAGE_SCALE_HPP #define IMAGE_SCALE_HPP#include <vector> #include <cstdint> #include <utility> // for std::pair #include <algorithm> #include <string> enum cl…

Filament引擎(四)——光照渲染Froxelizer實現分析

Froxelizer主要是用于filament光照效果的實現&#xff0c;生成光照渲染時所需的必要信息&#xff0c;幫助渲染過程中明確哪些區域受哪些光源所影響&#xff0c;是Filament中保證光照效果渲染效率的核心所在。這部分的源碼&#xff0c;可以結合filament官方文檔中Light Path部分…

2025 環法對決,VELO Angel Glide 坐墊輕裝上陣

2025環法第16賽段的風禿山之巔&#xff0c;當最后一縷夕陽沉入云層&#xff0c;山風裹挾著礫石的氣息掠過賽道&#xff0c;一場足以載入史冊的激戰正酣。帕雷-潘特的肌肉在汗水里賁張&#xff0c;鏈條與齒輪的咬合聲混著粗重喘息&#xff0c;在171.5公里賽程的最后3公里陡坡上&…

Linux程序->進度條

進度條最終效果&#xff1a; 目錄 進度條最終效果&#xff1a; 一&#xff1a;兩個須知 1&#xff1a;緩沖區 ①&#xff1a;C語言自帶緩沖區 ②&#xff1a;緩沖區的刷新策略 2&#xff1a;回車和換行的區別 二&#xff1a;倒計時程序 三&#xff1a;入門板進度條的實…

Python爬蟲實戰:研究tldextract庫相關技術構建新聞網站域名分析爬蟲系統

1. 引言 網絡爬蟲作為一種自動獲取互聯網信息的技術,在數據挖掘、信息檢索、輿情分析等領域有著廣泛的應用。Python 因其豐富的庫和簡潔的語法,成為了開發爬蟲的首選語言。tldextract 是 Python 中一個強大的域名解析庫,能夠準確地從 URL 中提取頂級域名、二級域名等關鍵信…

【算法-華為機試-火星基地改造】

基地改造題目描述目標輸入輸出代碼實現題目描述 在2XXX年&#xff0c;人們發現了一塊火星地區&#xff0c;這里看起來很適合建設新家園。但問題是&#xff0c;我們不能一次性將這片地區的空氣變得適合人類居住&#xff0c;得分步驟來。 把這片火星地區想象成一個巨大的棋盤。棋…

C++入門自學Day1-- C語言的宏函數和C++內聯函數

一、函數調用開銷函數調用會涉及&#xff1a;參數壓棧&#xff08;或寄存器傳參&#xff09;跳轉到函數體返回值處理棧幀銷毀這個過程對小函數來說可能非常浪費&#xff0c;因此&#xff0c;宏函數和內聯函數的目的就是避免“函數調用的開銷”&#xff0c;通過代碼展開&#xf…

Pytorch混合精度訓練最佳實踐

混合精度訓練&#xff08;Mixed Precision Training&#xff09;是一種通過結合單精度&#xff08;FP32&#xff09;和半精度&#xff08;FP16/FP8&#xff09;計算來加速訓練、減少顯存占用的技術。它在保持模型精度的同時&#xff0c;通常能帶來 2-3 倍的訓練速度提升&#x…

Qt C++動態庫SDK在Visual Studio 2022使用(C++/C#版本)

01 將C SDK 集成到 IDE 中以下是在 Microsoft Visual Studio 平臺下 SDK 的集成。2.1 Visual Studio 平臺下 C/C環境配置及集成到 IDE 中xxx.lib 和 xxx.dll 適合在 Windows 操作系統平臺使用&#xff0c;這里以 VS2022 環境為例。2.1.1 C/C 工程環境配置與集成1、C# SDK 接口…