当前位置: 首页 > 编程笔记 >

Spring Boot使用profile如何配置不同环境的配置文件

越胤
2023-03-14
本文向大家介绍Spring Boot使用profile如何配置不同环境的配置文件,包括了Spring Boot使用profile如何配置不同环境的配置文件的使用技巧和注意事项,需要的朋友参考一下

在springboot的开发中,有时候我们会有不同的配置,例如日志打印,数据库连接等,开发,测试,生产每个环境可能配置都不一致,还好,springboot支持通过不同的profile来配置不同环境的配置,下面就大致介绍一下yml配置文件跟properties配置文件怎么使用profile配置不同环境的配置文件...

先介绍一下开发环境:

  1. jdk版本是1.8
  2. springboot的版本是1.4.1
  3. 开发工具为 intellij idea

我们先来介绍,使用一个yml文件,通过不同的profile来配置属性文件:

    1.首先,我们先创建一个名为 application.yml的属性文件,如下:

    2.然后打开文件,输入一下内容:

#查看springboot开启了哪些配置
debug: false
spring:
 profiles:
 active: dev
---
#开发环境配置
spring:
 profiles: dev
server:
 port: 8080
---
#测试环境配置
spring:
 profiles: test
server:
 port: 8081
---
#生产环境配置
spring:
 profiles: pro
server:
 port: 8082

非常简单的配置,application.yml文件分为四部分,使用一组(---)来作为分隔符,第一部分,为通用配置部分,表示三个环境都通用的属性,spring.profiles.active稍后解释.

后面三段分别为,开发,测试,生产,都用spring.profiles指定了一个值(开发为dev,测试为test,生产为pro),这个值表示该段配置应该用在哪个profile里面,

    PS:一定要注意!!一定要注意!!一定要注意!!所有属性后面跟的value要跟 ":" 隔开一个空格,否则,配置无效!!!配置无效!!!配置无效!!!我当初就掉进来了,在此告知各位,别跟我一样掉进来!!!

如果,我们是本地启动,在通用配置里面,可以设置调用哪个环境的profile,也就是第一段的spring.profiles.active=XXX;

上面的XXX是每个环境的 spring.profiles对应的value,通过这个,可以控制本地启动调用哪个环境的配置文件,例如:

spring:

    profiles:

        active: dev

加载的,就是开发环境的属性,如果dev换成test,则会加载测试环境的属性,生产也是如此,

PS:如果spring.profiles.active没有指定值,那么只会使用没有指定spring.profiles文件的值,也就是只会加载通用的配置

如果是部署到服务器的话,我们正常打成jar包,发布是时候,采用:

--spring.profiles.active=test或者pro 来控制加载哪个环境的配置,完整命令如下:

java -jar xxxxx.jar --spring.profiles.active=test  表示加载测试环境的配置

java -jar xxxxx.jar --spring.profiles.active=pro  表示加载生产环境的配置

上面介绍完了,我们本地启动一下,先将spring.profiles.active的值设置为dev,看看日志打印结果:

通过日志分析,可以看到,打印了profiles的值为dev,下面看看打印的端口号

发现,端口号是8080说明加载了dev的配置;

下面我们来试试把active的值换成test,重启看看:

active变成了test,

端口变为了8081,说明,加载的是test的配置,

接下来,就是使用多个yml配置文件进行配置属性文件:

    如果是使用多个yml来配置属性,我们则可以这么使用,通过与配置文件相同的明明规范,创建application-{profile}.yml文件,将于环境无关的属性,放置到application.yml文件里面,可以通过这种形式来配置多个环境的属性文件,在application.yml文件里面指定spring.profiles.active=profiles的值,来加载不同环境的配置,如果不指定,则默认只使用application.yml属性文件,不会加载其他的profiles的配置

使用properties配置多个环境配置文件

如果使用application.properties进行多个环境的配置,原理跟使用多个yml配置文件一致,也是通过application-{profile}.properties来控制加载哪个环境的配置,将于环境无关的属性,放置到application.properties文件里面,通过spring.profiles.active=profiles的值,加载不同环境的配置,如果不指定,则默认加载application.properties的配置,不会加载带有profile的配置

总结

以上所述是小编给大家介绍的Spring Boot使用profile如何配置不同环境的配置文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍详解springboot + profile(不同环境读取不同配置),包括了详解springboot + profile(不同环境读取不同配置)的使用技巧和注意事项,需要的朋友参考一下 具体做法: 不同环境的配置设置一个配置文件,例如:dev环境下的配置配置在application-dev.properties中;prod环境下的配置配置在application-prod.prope

  • 本文向大家介绍spring Profile如何为不同环境提供不同的配置支持,包括了spring Profile如何为不同环境提供不同的配置支持的使用技巧和注意事项,需要的朋友参考一下 说明 Profile为在不同环境下使用不同的配置提供了支持(开发环境下的配置和生产环境下的配置肯定是不同的, 例如, 数据库的配置) 。 在spring开发中用@Profile 注解使用来选择行配置系统属性。而在sp

  • 本文向大家介绍使用maven的profile构建不同环境配置的方法,包括了使用maven的profile构建不同环境配置的方法的使用技巧和注意事项,需要的朋友参考一下 最近使用到了maven的profile功能,发现这个功能的确很好用也很实用,这块的知识比较多也比较乱,其实真正理解了之后非常简单,为了巩固总结知识,有个更清晰的知识体系,本文诞生了,希望能让像我一样零基础的小白一看就懂,有请戏精,闪

  • 我正在使用处理。我有大约5个。因此,我将spring cloud config server配置为集中配置。它工作得很好。 配置服务器配置 spring.cloud.config.server.native.search-locations=classpath://common-config server.port=8888 现在的问题是,我有两个环境和,并且我创建了和,根据spring文档,我需

  • 本文向大家介绍Maven profile实现不同环境的配置管理实践,包括了Maven profile实现不同环境的配置管理实践的使用技巧和注意事项,需要的朋友参考一下 前言 目前,企业项目的开发过程中,往往会使用配置文件来做一些配置项来实现项目部署的灵活性,避免硬编码的方式在环境变化时需要对代码进行重新编译。但是往往在项目周期中存在着各种环境:如开发环境、测试环境以及生产环境等,而且在不同的运行环

  • 问题内容: 如何管理不同环境的配置变量/常量? 这可能是一个示例: 我的其余API可以访问,但是在Git版本控制下使用相同代码工作的朋友在Tomcat上部署了该API 。 假设我们有这样的东西: 如何根据环境动态注入API端点的正确值? 在PHP中,我通常使用文件来执行此类操作,将基本​​配置文件(config.xml)与用户名称识别的本地环境配置文件合并。但是我不知道如何在JavaScript中