`
sundful
  • 浏览: 1253246 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

springboot中spring.profiles.include的妙用

 
阅读更多

我们有这样的一个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 Boot配置特定属性spring.profiles的方法

    spring.profiles是Spring Boot框架中的一种配置机制,它允许开发者在不同的环境中使用不同的配置文件。使用spring.profiles,可以根据不同的环境(例如开发、测试、生产等)加载不同的配置文件,从而实现不同的配置...

    浅谈SpringBoot2.4 配置文件加载机制大变化

    spring.profiles.include: local security.user.password: userc 在这里,我们有一个多文档 YAML 文件(一个文件由三个逻辑文档组成,由 --- 分隔)。如果使用 --spring.profile.actives=prod 运行,那么 security....

    SpringBoot配置详解

    * `spring.profiles.include`:无条件激活指定的Profile列表,以逗号分隔。 Application Settings * `spring.main.sources`:应用程序的源代码目录。 * `spring.main.web-environment`:检测Web环境,默认为自动...

    SpringBoot 教程之 profile 的应用.docx

    例如,设置 `spring.profiles.active=test` 将使系统使用 `application-test.properties` 中的配置。 同样的规则也适用于 YAML 格式的配置文件,如 `application.yml`。在 YAML 文件中,我们可以使用以下结构来激活...

    springboot配置

    - **spring.profiles.include**: 无条件激活指定的配置文件列表。这通常用于在任何环境中都需要加载的特定配置。例如:`spring.profiles.include=common,security`。 #### 三、Spring 应用程序设置 - **spring....

    springboot通过@Profile注解配置不同环境

    在实际项目中,我们通常还会利用Spring Boot的`spring.profiles.active`属性来指定当前运行环境。这个属性可以在启动命令行参数、JVM系统属性或者`application.properties`文件中设置。例如: ```bash java -jar my...

    SpringBoot 38道面试题和答案.docx

    Spring Boot 的配置文件(application.properties 或 application.yml)中设置 `management.endpoints.web.exposure.include=*`(暴露所有端点)或指定特定端点,并在安全配置中排除这些端点,例如使用 Spring ...

    SpringBoot 47道面试题和答案.docx

    SpringBoot 是一种基于 Spring 框架的快速开发工具,旨在简化传统 Spring 项目的初始化、配置和部署过程。随着 Spring 框架的发展,其功能不断增多,导致项目配置复杂,SpringBoot 应运而生,它在原有框架的基础上...

    Spring Cloud在Java微服务项目中的配置管理实践

    3. **使用配置**:在Spring Boot应用中,可以通过`@Value`注解或`Environment`对象来使用配置。 ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype....

    SpringBoot 35道面试题和答案.docx

    SpringBoot 是一种基于 Spring 框架的快速开发工具,旨在简化 Spring 应用程序的初始设置和开发过程。随着 Spring 框架的发展,其功能越来越多,导致项目配置复杂,SpringBoot 的出现解决了这一问题。它在原有的 ...

    springboot面试题及答案.docx

    要禁用Actuator,可以在配置文件中设置`management.endpoints.web.exposure.include= * `(包含所有端点)或指定特定端点,然后在生产环境中移除或限制这些暴露的端点。 5. Spring Boot 还提供了其他特性,如自动...

    Springboot入门必备文档,全面基础入门springboot细节问题

    JavaConfig 是 Spring 框架中的一种配置方式,允许开发者使用 Java 类代替 XML 配置文件来配置 Spring 容器。JavaConfig 提供了如下优势: - **面向对象的配置**:允许类之间的继承,重写@Bean 方法等,提供了更灵活...

    SpringBoot经典面试题汇总(精华版).pdf

    - **环境感知配置**:Spring Boot支持基于环境的配置,可以通过命令行参数`-Dspring.profiles.active={enviornment}`指定激活的配置文件,便于在不同环境下切换配置。 #### 3. Spring与Spring Boot的区别 - **配置...

    SpringBoot面试专题及答案

    Spring Boot 是一种基于 Spring 框架的快速开发工具,旨在简化初始设置和配置过程,使得开发者能够更快地启动和运行应用...在面试中,理解并能够详述Spring Boot的核心特性和使用场景,无疑会增加求职者的技术分值。

Global site tag (gtag.js) - Google Analytics