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

application.properties配置文件详解

application.properties配置文件详解

在 Spring Boot 中,application.properties(或 application.yml)是核心配置文件,用于定义应用运行时的各种参数。其配置项覆盖​​应用核心、数据源、Web、安全、缓存、日志、中间件集成​​等多个领域。以下按功能模块分类列举常见配置项(基于 Spring Boot 3.x,部分配置可能因版本略有差异):

​一、应用核心配置​

控制应用的基础行为,如应用名称、端口、环境等。

配置项说明示例值
spring.application.name应用名称(用于服务发现、日志标识等)my-app
server.portWeb 服务器端口(默认 8080)8081
server.address绑定的网卡地址(默认 0.0.0.0,即所有地址)127.0.0.1
server.servlet.context-pathWeb 应用上下文路径(根路径)/api
spring.profiles.active激活的环境配置(如 devprodprod
spring.config.import导入外部配置文件(支持 classpath:file: 等前缀)classpath:db-config.properties
spring.main.allow-bean-definition-overriding是否允许 Bean 定义覆盖(默认 false,避免冲突)true
spring.main.lazy-initialization是否启用全局懒初始化(默认 false,启动时不初始化 Bean)true

​二、数据源与 ORM 配置​

用于配置数据库连接、连接池、ORM 框架(如 JPA、MyBatis)等。

​1. 通用数据源配置​
配置项说明示例值
spring.datasource.url数据库连接 URLjdbc:mysql://localhost:3306/mydb?useSSL=false
spring.datasource.driver-class-name数据库驱动类名(自动检测时可省略)com.mysql.cj.jdbc.Driver
spring.datasource.username数据库用户名root
spring.datasource.password数据库密码123456
spring.datasource.hikari.*HikariCP 连接池配置(Spring Boot 默认连接池)见下文 Hikari 专用配置
​2. HikariCP 连接池专用配置​
配置项说明示例值
spring.datasource.hikari.connection-timeout连接超时时间(毫秒,默认 30000)5000
spring.datasource.hikari.maximum-pool-size最大连接数(默认 10)20
spring.datasource.hikari.minimum-idle最小空闲连接数(默认与 maximum-pool-size 相同)5
spring.datasource.hikari.idle-timeout空闲连接超时时间(毫秒,默认 600000)300000
spring.datasource.hikari.max-lifetime连接最大存活时间(毫秒,默认 1800000)1800000
​3. JPA/Hibernate 配置​
配置项说明示例值
spring.jpa.hibernate.ddl-autoDDL 自动生成策略(none/update/create/create-dropupdate
spring.jpa.show-sql是否打印 SQL 日志(默认 falsetrue
spring.jpa.properties.hibernate.dialectHibernate 方言(指定数据库类型,如 MySQL 8)org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.format_sql是否格式化 SQL 输出(默认 falsetrue
​4. MyBatis 配置​
配置项说明示例值
mybatis.mapper-locationsMyBatis Mapper XML 文件路径classpath:mapper/*.xml
mybatis.configuration.map-underscore-to-camel-case是否开启驼峰命名转换(默认 falsetrue
mybatis.configuration.log-impl日志实现(如 STDOUT_LOGGINGorg.apache.ibatis.logging.stdout.StdOutImpl

​三、Web 与 HTTP 配置​

控制 Web 服务器、HTTP 请求/响应行为、静态资源等。

配置项说明示例值
spring.mvc.servlet.load-on-startupDispatcherServlet 启动时加载顺序(默认 -1,延迟加载)1
spring.mvc.static-path-pattern静态资源访问路径(默认 /static/**/public/** 等)/assets/**
spring.resources.static-locations静态资源存储路径(默认 classpath:/META-INF/resources/ 等)classpath:/static/
spring.mvc.date-format日期类型参数的格式化模式(如 yyyy-MM-ddyyyy-MM-dd HH:mm:ss
spring.mvc.locale默认语言环境(影响国际化)zh_CN
spring.mvc.ignore-default-model-on-redirect重定向时是否忽略默认 Model(默认 truefalse
server.tomcat.max-threadsTomcat 最大工作线程数(默认 200)500
server.jetty.max-threadsJetty 最大工作线程数(默认 200)500

​四、安全配置(Spring Security)​

控制认证、授权、CSRF、CORS 等安全行为。

配置项说明示例值
spring.security.enabled是否启用 Spring Security(默认 truefalse(测试时禁用)
spring.security.oauth2.client.registration.github.client-idGitHub OAuth2 客户端 IDyour-github-client-id
spring.security.oauth2.client.registration.github.client-secretGitHub OAuth2 客户端密钥your-github-client-secret
spring.security.user.name内存认证的用户名(简单场景)admin
spring.security.user.password内存认证的密码admin123
spring.security.csrf.enabled是否启用 CSRF 保护(默认 truefalse(API 场景可能需要关闭)
spring.security.cors.allowed-originsCORS 允许的源(默认 *http://localhost:8080
spring.security.cors.allowed-methodsCORS 允许的 HTTP 方法(默认 [GET, POST, PUT, DELETE][GET, POST]

​五、缓存配置​

控制 Spring Cache 抽象的底层实现(如 Redis、Caffeine)。

​1. 通用缓存配置​
配置项说明示例值
spring.cache.type缓存类型(simple/caffeine/redis/ehcache 等)redis
spring.cache.cache-names预定义的缓存名称(逗号分隔)userCache,productCache
​2. Caffeine(本地缓存)专用配置​
配置项说明示例值
spring.cache.caffeine.specCaffeine 缓存策略(如 maximumSize=100,expireAfterWrite=10mmaximumSize=500,expireAfterAccess=5m
spring.cache.caffeine.initial-capacity初始缓存容量10
​3. Redis(分布式缓存)专用配置​
配置项说明示例值
spring.redis.hostRedis 服务器地址localhost
spring.redis.portRedis 端口(默认 6379)6380
spring.redis.passwordRedis 密码(若有)redis-pass
spring.redis.databaseRedis 数据库索引(默认 0)1
spring.redis.timeout连接超时时间(毫秒,默认 5000)3000
spring.redis.lettuce.pool.max-activeLettuce 连接池最大活跃连接数8

​六、日志配置​

控制日志级别、输出格式、文件存储等(支持 Logback、Log4j2 等)。

配置项说明示例值
logging.level.root根日志级别(trace/debug/info/warn/errorinfo
logging.level.com.example指定包下的日志级别(如 com.example.servicedebug
logging.file.name日志文件名称(如 app.logmyapp.log
logging.file.path日志文件存储路径(默认当前目录)/var/log/myapp/
logging.pattern.console控制台日志输出格式%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
logging.pattern.file文件日志输出格式%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n

​七、消息队列与中间件​

集成 RabbitMQ、Kafka、RocketMQ 等消息中间件的配置。

​1. RabbitMQ 配置​
配置项说明示例值
spring.rabbitmq.hostRabbitMQ 服务器地址localhost
spring.rabbitmq.portRabbitMQ 端口(默认 5672)5673
spring.rabbitmq.username用户名guest
spring.rabbitmq.password密码guest
spring.rabbitmq.virtual-host虚拟主机/
spring.rabbitmq.listener.simple.concurrency消费者最小并发数3
spring.rabbitmq.listener.simple.max-concurrency消费者最大并发数10
​2. Kafka 配置​
配置项说明示例值
spring.kafka.bootstrap-serversKafka 服务地址(逗号分隔)localhost:9092
spring.kafka.consumer.group-id消费者组 IDmy-group
spring.kafka.consumer.auto-offset-reset消费偏移量重置策略(earliest/latestearliest
spring.kafka.producer.retries生产者重试次数3

​八、邮件配置(Spring Mail)​

配置 SMTP 服务器发送邮件。

配置项说明示例值
spring.mail.hostSMTP 服务器地址(如 smtp.gmail.comsmtp.qq.com
spring.mail.portSMTP 端口(默认 25,SSL 通常为 465)465
spring.mail.username发件人邮箱用户名user@qq.com
spring.mail.password发件人邮箱密码(或授权码)xxxxxx
spring.mail.properties.mail.smtp.ssl.enable是否启用 SSL(默认 falsetrue
spring.mail.properties.mail.smtp.starttls.enable是否启用 STARTTLS(默认 falsetrue

​九、分布式与云原生配置​

支持服务发现(Eureka、Consul)、配置中心(Spring Cloud Config)、分布式事务等。

​1. Eureka 服务发现​
配置项说明示例值
eureka.client.service-url.defaultZoneEureka 服务器地址(多个用逗号分隔)http://eureka-server:8761/eureka/
eureka.client.register-with-eureka是否注册到 Eureka(默认 truetrue
eureka.client.fetch-registry是否从 Eureka 获取服务列表(默认 truetrue
eureka.instance.instance-id实例唯一 ID${spring.application.name}:${server.port}
​2. Consul 服务发现​
配置项说明示例值
spring.cloud.consul.hostConsul 服务器地址localhost
spring.cloud.consul.portConsul 端口(默认 8500)8501
spring.cloud.consul.discovery.service-name服务注册名称my-service

​十、Actuator 监控配置​

暴露应用健康、指标、端点等信息(用于监控和运维)。

配置项说明示例值
management.endpoints.web.exposure.include暴露的 HTTP 端点(如 healthinfometrics*(暴露所有)
management.endpoint.health.show-details是否显示健康检查详情(默认 neveralways
management.metrics.export.prometheus.enabled是否启用 Prometheus 指标导出true
management.endpoint.shutdown.enabled是否启用 shutdown 端点(默认 false,生产环境禁用)false

​十一、其他常用配置​

配置项说明示例值
spring.servlet.multipart.max-file-size文件上传最大大小(默认 1MB)10MB
spring.servlet.multipart.max-request-size单次请求最大文件总大小50MB
spring.task.scheduling.pool.size异步任务线程池大小(默认 1)10
spring.task.execution.pool.core-size异步任务核心线程数5
spring.messages.basename国际化消息文件基础名称(如 messages 对应 messages.propertiesi18n/messages
spring.jpa.open-in-view是否允许在视图层保持 JPA 实体打开(默认 true,可能导致性能问题)false

​总结​

application.properties 的配置项非常丰富,覆盖了应用运行的几乎所有方面。实际开发中,通常只需配置​​核心参数​​(如端口、数据源)和​​业务相关参数​​(如缓存策略、第三方服务密钥),其他配置可使用 Spring Boot 默认值。对于复杂场景(如分布式事务、自定义 Bean 配置),还可结合 @Configuration 类或 application.yml 的层级结构实现更灵活的配置管理。

http://www.dtcms.com/a/320483.html

相关文章:

  • 【Android笔记】Android 自定义 TextView 实现垂直渐变字体颜色(支持 XML 配置)
  • Linux 内存管理之page folios
  • Kiro智能化代码重构实战:从遗留系统到现代架构的AI驱动转型
  • STM32HAL 快速入门(二):用 CubeMX 配置点灯程序 —— 从工程生成到 LED 闪烁
  • ELK+Redis+Nginx多节点部署实战:从日志收集到可视化分析
  • 大语言模型提示工程与应用
  • 破界之光:DeepSeek 如何重构AI搜索引擎的文明坐标 || #AIcoding·八月创作之星挑战赛#
  • 分治-快排-215.数组中的第k个最大元素-力扣(LeetCode)
  • GPT OSS 双模型上线,百度百舸全面支持快速部署
  • MCP实现:.Net实现MCP服务端 + Ollama ,MCP服务端工具调用
  • 构建响应式在线客服聊天系统的前端实践 Vue3+ElementUI + CSS3
  • RAG实现:.Net + Ollama + Qdrant 实现文本向量化,实现简单RAG
  • 【优选算法】BFS解决拓扑排序
  • Spring Boot + ECharts 极简整合指南:从零实现动态数据可视化大屏
  • Java Stream API 详解与实战案例
  • 广东省省考备考(第七十天8.8)——言语、判断推理(强化训练)
  • Ubuntu 22.04 安装 Docker 完整指南
  • flutter TLS protocol versions: (TLSv1.2, TLSv1.3)
  • flutter开发(一)flutter命令行工具
  • Flutter开发 多孩子布局组件
  • 在 Debian 系统上安装 Redis服务
  • VRTE 的应用程序部署到Ubuntu上 报错:bash: ./rb_exmd: No such file or directory
  • Korg 电子琴 2025 高级电子琴手机版:专业的音乐创作与演奏工具
  • 平板探测器的主要技术指标
  • 电脑IP地址是“169.254.x.x”而无法上网的原因
  • ubuntu 22.04 使用yaml文件 修改静态ip
  • 论文阅读:AAAI 2024 ExpeL: LLM Agents Are Experiential Learners
  • openpnp - 不连接设备,只大概测试一下摄像头是否好使
  • Zabbix网络发现:自动化监控新利器
  • TestComplete 如何打造高效UI测试体系?