当前位置: 首页 > news >正文

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.dtcms.com/a/301383.html

相关文章:

  • 【PCIe 总线及设备入门学习专栏 5.3.4 -- PCIe PHY Firmware 固件加载流程】
  • 如何思考一个动态规划问题需要几个状态?
  • [每周一更]-(第150期):AI Agents:从概念到实践的智能体时代
  • net8.0一键创建支持(Elastic)
  • 2025C卷 - 华为OD机试七日集训第1期 - 按算法分类,由易到难,循序渐进,玩转OD
  • Spring 容器注入时查找 Bean 的完整规则
  • Flutter中 Provider 的基础用法超详细讲解(二)之ChangeNotifierProvider
  • 力扣热题100----------53最大子数组和
  • 咨询进阶——解读40页公司战略解码方法【附全文阅读】
  • sed命令
  • 通信名词解释:I2C、USART、SPI、RS232、RS485、CAN、TCP/IP、SOCKET、modbus
  • 【通识】设计模式
  • catkin_make生成的编译文件夹目录结构说明
  • uart通信
  • python---类型转换
  • Milvus 实战全流程
  • Deja Vu: 利用上下文稀疏性提升大语言模型推理效率
  • Spring 解析 XML 配置文件的过程(从读取 XML 到生成 BeanDefinition)
  • 扩展组件(uni-ui)之uni-group
  • 「iOS」————消息传递和消息转发
  • 26.删除有序数组中的重复项
  • MyBatis-Plus高效开发实战
  • 内存管理和垃圾收集-02: 操作系统如何管理内存?
  • Linux驱动开发笔记(五)——设备树(中)——节点的标准属性
  • 益莱储:明智地投资测试仪器
  • S7-1500 与 S7-1200 存储区域保持性设置特点详解
  • 电子板原理功能区解析与PlantUML图示
  • 3,Windows11安装docker保姆级教程
  • 轻量化多模态文档处理利器SmolDocling:技术原理与场景落地引言:文档智能处理的范式革命
  • 数据结构基础内容(第六篇:二叉搜索与平衡二叉树)