我们有这样的一个springboot项目。项目分为开发、测试、生产三个不同阶段(环境),每个阶段都会有db、ftp、redis等的不同配置信息。我们可以使用spring.profiles.include来实现三种不同环境的一键切换。
项目总(入口)配置文件:
bootstrap.yml ,内容如下
spring.profiles.active: dev #dev、test、prod 三种配置可以在这里进行一键切换,默认激活 dev(开发)环境配置
项目开发环境配置文件:
application-dev.yml (开发环境入口配置)、application-devDb.yml 、application-devFtp.yml、application-devRedis.yml
application-dev.yml 中含有如下内容
spring.profiles.include: devDb,devFtp,devRedis
项目测试环境配置文件:
application-test.yml (测试环境入口配置)、application-testDb.yml 、application-testFtp.yml、application-testRedis.yml
application-test.yml 中含有如下内容
spring.profiles.include: testDb,testFtp,testRedis
项目生产环境配置文件:
application-prod.yml (生产环境入口配置)、application-prodDb.yml 、application-prodFtp.yml、application-prodRedis.yml
application-prod.yml 中含有如下内容
spring.profiles.include: prodDb,prodFtp,prodRedis
spring.profiles.include 的作用是可以叠加激活新的profile ,这样可以在总的项目配置(bootstrap.yml)中实现一键切换dev、test、prod三者不同环境, 即
切换为dev时,同时激活了dev、devDb、devFtp、devRedis 的profile
切换为test时,同时激活了test、testDb、testFtp、testRedis 的profile
切换为prod时,同时激活了prod、prodDb、prodFtp、prodRedis 的profile
另外: 在yml配置文件中配置List<String> 的值,可以采用 -子项 的方式,如 :
spring.profiles.include:
- 子项1
- 子项2
- 子项3
也可以采用 逗号分隔元素列表的方式,如:
spring.profiles.include: 子项1,子项2,子项3
相关推荐
spring.profiles是Spring Boot框架中的一种配置机制,它允许开发者在不同的环境中使用不同的配置文件。使用spring.profiles,可以根据不同的环境(例如开发、测试、生产等)加载不同的配置文件,从而实现不同的配置...
spring.profiles.include: local security.user.password: userc 在这里,我们有一个多文档 YAML 文件(一个文件由三个逻辑文档组成,由 --- 分隔)。如果使用 --spring.profile.actives=prod 运行,那么 security....
* `spring.profiles.include`:无条件激活指定的Profile列表,以逗号分隔。 Application Settings * `spring.main.sources`:应用程序的源代码目录。 * `spring.main.web-environment`:检测Web环境,默认为自动...
例如,设置 `spring.profiles.active=test` 将使系统使用 `application-test.properties` 中的配置。 同样的规则也适用于 YAML 格式的配置文件,如 `application.yml`。在 YAML 文件中,我们可以使用以下结构来激活...
- **spring.profiles.include**: 无条件激活指定的配置文件列表。这通常用于在任何环境中都需要加载的特定配置。例如:`spring.profiles.include=common,security`。 #### 三、Spring 应用程序设置 - **spring....
在实际项目中,我们通常还会利用Spring Boot的`spring.profiles.active`属性来指定当前运行环境。这个属性可以在启动命令行参数、JVM系统属性或者`application.properties`文件中设置。例如: ```bash java -jar my...
Spring Boot 的配置文件(application.properties 或 application.yml)中设置 `management.endpoints.web.exposure.include=*`(暴露所有端点)或指定特定端点,并在安全配置中排除这些端点,例如使用 Spring ...
SpringBoot 是一种基于 Spring 框架的快速开发工具,旨在简化传统 Spring 项目的初始化、配置和部署过程。随着 Spring 框架的发展,其功能不断增多,导致项目配置复杂,SpringBoot 应运而生,它在原有框架的基础上...
3. **使用配置**:在Spring Boot应用中,可以通过`@Value`注解或`Environment`对象来使用配置。 ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype....
SpringBoot 是一种基于 Spring 框架的快速开发工具,旨在简化 Spring 应用程序的初始设置和开发过程。随着 Spring 框架的发展,其功能越来越多,导致项目配置复杂,SpringBoot 的出现解决了这一问题。它在原有的 ...
要禁用Actuator,可以在配置文件中设置`management.endpoints.web.exposure.include= * `(包含所有端点)或指定特定端点,然后在生产环境中移除或限制这些暴露的端点。 5. Spring Boot 还提供了其他特性,如自动...
JavaConfig 是 Spring 框架中的一种配置方式,允许开发者使用 Java 类代替 XML 配置文件来配置 Spring 容器。JavaConfig 提供了如下优势: - **面向对象的配置**:允许类之间的继承,重写@Bean 方法等,提供了更灵活...
- **环境感知配置**:Spring Boot支持基于环境的配置,可以通过命令行参数`-Dspring.profiles.active={enviornment}`指定激活的配置文件,便于在不同环境下切换配置。 #### 3. Spring与Spring Boot的区别 - **配置...
Spring Boot 是一种基于 Spring 框架的快速开发工具,旨在简化初始设置和配置过程,使得开发者能够更快地启动和运行应用...在面试中,理解并能够详述Spring Boot的核心特性和使用场景,无疑会增加求职者的技术分值。