SpringBoot环境隔离Profiles

前言

通常我们开发不可能只有一个生产环境,还会有其它的开发,测试,预发布环境等等。为了更好的管理每个环境的配置项,springboot也提供了对应的环境隔离的方法。

直接上干货

知识点

激活环境方法

1,在application.properties或者yaml文件中配置:spring.profiles.active=环境1,环境2
2,命令行激活:java -jar xxx.jar --spring.profiles.active=环境1,环境2

补充

1,修改默认环境名称 spring.profiles.default=test;

2,不管激活哪个环境,这些环境都要有 spring.profiles.include= security  总是要生效的环境

3,对多环境进行分组:spring.profiles.group.name(你自己起名)=环境1,环境2  
    也可以这么写spring.profiles.group.name[0]=环境1
    spring.profiles.group.name[1]=环境2
使用则相同:spring.profiles.active=name(group起的名)

补充相关注解:@Profile()

@Profile("dev") => 注解表示这个类只能在这些环境下生效, 如果值为"default"则表示:默认环境

注意

命名规范:application-(profiles标识).properties

代码测试

照例准备启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Applications {public static void main(String[] args) {SpringApplication.run(Applications.class, args);}
}

准备配置文件application.properties

spring.profiles.active=devpro.b.value=b value in application

准备dev环境配置文件application-dev.properties

pro.a.value=this is dev
pro.b.value=b value in dev

testController类

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;@RestController
@Slf4j
public class ProfilesTestController {@Value("${pro.a.value}")private String a;@Value("${pro.b.value}")private String b;@RequestMapping(method = RequestMethod.GET, path = "/profiles/test")public void test1() {log.info("测试激活环境是否生效" + a);log.info("测试与application.properties中配置项冲突时,生效为哪个:" + b);}}

启动测试,测试结果如图所示

这里需要注意,尽可能不要去在不同的properties写相同的配置,如果你的代码中加了一些别的东西,例如常用的配置解密功能等操作property的功能时,会出现与预想结果之外的输出。如下图,我加入自定义解密之后的输出。

希望对各位看官老爷有帮助,如果可以的话,能否请各位老爷点个赞,关注一下博主呢,在这里非常感谢各位老爷了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/706760.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Aspose.PDF功能演示:在 JavaScript 中将 TXT 转换为 PDF

您是否正在寻找一种在 JavaScript 项目中将纯文本文件从TXT无缝转换为PDF格式的方法?您来对地方了!无论您是要构建 Web 应用程序、创建生产力工具,还是只是希望简化工作流程,直接从 JavaScript 代码中将 TXT 转换为 PDF 的功能都可…

Windows 安装mysql 和 Redis

mysql Windows 图形界面安装: 下载mysql https://dev.mysql.com/downloads/ 1.下载完成后,找到文件双击安装程序 2. 等待一段时间, 选择默认,点击next 3. 选择安装目录 下载mysql产品 安装mysql产品 产品配置向导 安装…

相关的形态

相关的形态可以分为完全线性相关、线性相关、非线性相关和不相关。 (a)中的观测点恰好落在一条直线上,表示了两个变量之间是一一对应的函数关系,可以用直线方程来准确描述这两个变量的关系,称为完全线性相关。 (b)中观测点散落在一条直线周…

多联机常见各部件功能及常见机组制冷原理图

一、各部件名称和主要功能 1、压缩机 压缩机根据实际系统需要,调整其转速达到节能目的。 2、压缩机油温加热带 在待机状态下,保证压缩的油温确再启动可靠性。 3、压缩机 排气 感温包 检测压缩机的排气温度,达到控制和保护目的。 4、高压开…

mybaties查询!!!你就说灵不灵活吧

你就说灵不灵活吧 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.ruoyi.sys…

浅析扩散模型与图像生成【应用篇】(二十五)——Plug-and-Play

25. Plug-and-Play: Diffusion Features for Text-Driven Image-to-Image Translation 该文提出一种文本驱动的图像转换方法&#xff0c;输入一张图像和一个目标文本描述&#xff0c;按照文本描述对输入图像进行转换&#xff0c;得到目标图像。图像转换任务其实本质上属于图像编…

web安全学习笔记(16)

记一下第27-28课的内容。Token 验证 URL跳转漏洞的类型与三种跳转形式&#xff1b;URL跳转漏洞修复 短信轰炸漏洞绕过挖掘 一、token有关知识 什么是token&#xff1f;token是用来干嘛的&#xff1f;_token是什么意思-CSDN博客 二、URL跳转漏洞 我们在靶场中&#xff0c;…

JVS物联网模拟点位:如何配置并自动生成点位数据全教程

模拟点位 功能描述 模拟点位常用于业务的调试或数据展示&#xff0c;通过配置对应点位实现自动生成点位数据的功能。 界面操作 如下图所示&#xff0c;从模拟点位菜单进入模拟点位管理界面 模拟点位新增 点击新增按钮&#xff0c;如下图所示&#xff1a; ①&#xff1a;用户…

带插画的登录页火爆一时,不过好像有点过气了,是么?

插画在B端登录页中的作用是通过增加视觉吸引力、塑造品牌形象、提升用户体验和增加可视化指引等方式&#xff0c;为用户提供一个愉悦、易用、具有个性化的登录体验。这有助于提高用户对企业或组织的认知和好感度&#xff0c;增加用户的参与度和忠诚度。 当年这种分割很火爆呀&…

前端学习第一课

AJAX 事先说明&#xff0c;这只是记录&#xff0c;并不是从零到一的教学内容&#xff0c;如果想要学习的话&#xff0c;可以跳过本文章了 ok&#xff0c;转回正题&#xff0c;正如上面所说&#xff0c;这只是记录。其实我是有一定的前端基础的&#xff0c;也做过涉及相关的开发…

【JavaEE 初阶(七)】网络原理 TCP与UDP协议

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多网络知识 目录 1.前言2.应用层2.1xml2.2json 3.传输层3.1UDP协议3.2TCP协议3.2.1确认响应3.2.2超时重…

【车载开发系列】AutoSar中的Port

【车载开发系列】AutoSar中的Port 一. Port概念 AutoSAR 接口定义了 SWC 之间、BSW 模块之间以及 SWC 和 BSW 模块之间交互的信息。AutoSAR 接口通过 SWC 和/或 BSW 模块端口&#xff08;Port&#xff09;的形式实现。通过这些端口&#xff0c;SWC 和 BSW 模块之间实现了数据…