文章目录
引言介绍
application.yml
是 Spring Boot 中用于配置应用程序的主配置文件,它允许你配置应用程序的各种属性,如服务器端口、数据库连接、缓存策略等。这个文件支持不同环境的配置,我们可以为开发环境、测试环境和生产环境创建不同的配置文件。
application-dev.yml
:这是为开发环境准备的配置文件,通常包含开发环境中特有的配置,如数据库连接、服务器端口等。开发环境配置可以比较随意,为了开发调试方便,一般打开全部错误报告。application-test.yml
:这是为测试环境准备的配置文件,测试环境一般是克隆一份生产环境的配置,用于进行全面的测试,看看所实现的功能有没有bug。application-prod.yml
:这是为生产环境准备的配置文件,生产环境是正式提供对外服务的,一般会关掉错误报告,打开错误日志。生产环境的配置需要更加谨慎和稳定。
在真实的工作中,你可以通过在 application.yml
文件中使用 spring.profiles.active
来激活不同的配置文件。例如,设置 spring.profiles.active: dev
会激活 application-dev.yml
配置文件。这样,项目最终会采用 application.yml
和激活的环境配置的组合。
操作方式通常是在项目的资源目录 src/main/resources
下创建这些配置文件。在部署或启动应用程序时,可以通过命令行参数或者环境变量来指定当前激活的环境配置文件。例如,在启动应用程序时,可以使用以下命令来激活开发环境配置:
shell
shell
java -jar yourapp.jar --spring.profiles.active=dev
或者,在 application.yml
文件中直接指定激活的配置文件:
yaml
spring:
profiles:
active: dev
这样,Spring Boot 会加载 application.yml
中的公共配置,并覆盖或添加 application-dev.yml
中针对开发环境的特定配置。同样的,你可以为测试和生产环境设置 test
和 prod
作为激活的配置文件。
application.yml
(主配置文件)
yaml
spring:
application:
name: my-application
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
# 数据源配置,这里使用占位符,具体值由环境配置文件提供
url: ${DB_URL}
username: ${DB_USER}
password: ${DB_PASSWORD}
server:
port: ${SERVER_PORT}
# 通用配置
logging:
level:
root: INFO
application-dev.yml
(开发环境配置)
yaml
spring:
profiles: dev
datasource:
url: jdbc:mysql://localhost:3306/mydatabase_dev
username: dev_user
password: dev_password
server:
port: 8080
logging:
level:
root: DEBUG
application-test.yml
(测试环境配置)
yaml
spring:
profiles: test
datasource:
url: jdbc:mysql://test-server:3306/mydatabase_test
username: test_user
password: test_password
server:
port: 8888
logging:
level:
root: WARN
application-prod.yml
(生产环境配置)
yaml
yaml
spring:
profiles: prod
datasource:
url: jdbc:mysql://prod-server:3306/mydatabase_prod
username: prod_user
password: prod_password
server:
port: 80
logging:
level:
root: ERROR
在这些配置文件中,我们使用了占位符(如 ${DB_URL}
, ${DB_USER}
, ${SERVER_PORT}
)来表示那些可能因环境而异的配置项。在环境特定的配置文件中,我们提供了具体的值。
激活配置文件
要激活特定的环境配置,可以在启动应用程序时通过命令行参数指定,例如:
shell
java -jar yourapp.jar --spring.profiles.active=dev
或者在 application.yml
文件中指定默认激活的配置文件:
yaml
spring:
profiles:
active: dev
这样,Spring Boot 会加载 application.yml
中的通用配置,并覆盖或添加 application-dev.yml
中的开发环境特定配置。对于测试和生产环境,操作相同,只需将 dev
替换为 test
或 prod
。