1. SpringBoot基础配置详解
作为Java开发者,我们都经历过传统Spring项目繁琐的配置过程。SpringBoot的出现彻底改变了这一局面,它通过约定优于配置的理念,极大地简化了Spring应用的开发流程。本文将深入探讨SpringBoot的基础配置方法,帮助开发者快速上手并理解其核心机制。
1.1 配置文件基础与属性配置
SpringBoot的核心理念之一就是自动配置。当我们创建一个简单的SpringBoot项目时,即使不做任何配置,应用也能正常运行。这是因为SpringBoot已经为我们预先定义了大量默认配置。
在resources目录下,我们会看到一个名为application.properties的文件,这是SpringBoot默认的配置文件。通过这个文件,我们可以覆盖SpringBoot的默认配置。例如,修改内嵌Tomcat服务器的端口号:
properties复制# 修改服务器端口为80
server.port=80
这种配置方式有几个显著特点:
- 键值对格式简单直观(key=value)
- IDE提供智能提示(输入"server."就会提示可配置项)
- 配置集中管理,不再需要分散的XML文件
除了服务器端口,我们还可以配置许多其他属性:
properties复制# 关闭启动时的banner显示
spring.main.banner-mode=off
# 设置自定义banner图片
spring.banner.image.location=logo.png
# 配置日志级别
logging.level.root=info
这些配置之所以有效,是因为SpringBoot为各种starter模块预定义了可配置属性。我们可以在官方文档中找到完整的配置项列表。
提示:当你在配置文件中输入属性前缀时,如果IDE没有给出提示,可能是因为项目结构或依赖存在问题。确保已正确导入相关starter依赖。
1.2 配置文件类型与优先级
SpringBoot支持三种格式的配置文件:
- properties格式(传统格式)
- yml格式(主流格式)
- yaml格式(与yml基本相同)
1.2.1 三种配置文件示例
让我们看三种格式配置相同属性的示例:
application.properties:
properties复制server.port=80
application.yml:
yaml复制server:
port: 81
application.yaml:
yaml复制server:
port: 82
从上述示例可以看出,yml/yaml格式使用缩进表示层级关系,更加清晰易读。这也是为什么yml格式成为社区主流选择。
1.2.2 配置文件加载优先级
当多个配置文件同时存在时,SpringBoot按照以下优先级加载:
- application.properties
- application.yml
- application.yaml
也就是说,properties文件的配置会覆盖yml和yaml中的相同配置,而yml会覆盖yaml中的配置。
实际开发中,我们通常会遇到这样的场景:在application.yml中定义主要配置,而在application-prod.yml
