当前位置: 首页 > news >正文

Spring Boot结合IDEA自带Maven插件快速切换profile | Spring Cloud 10

一、前言

IDEA是目前 Java 开发者中使用最多的开发工具,它有着简约的设计风格,强大的集成工具,便利的快捷键。

在项目项目整个开发运维周期中,我们的的项目往往需要根据不同的环境,使用不同的文件配置。

比如以下部分:

  • 默认:application.properties/yml
  • 共用配置:application-common.properties/yml
  • 开发环境:application-dev.properties/yml
  • 生产环境:application-prod.properties/yml
  • 测试环境:application-test.properties/yml

在实际使用中通过在application.yml文件中配置:

spring:profiles:active: dev

application.properties文件中配置:

spring.profiles.active=dev

置后Spring Boot会激活application-${active}.properties/yml的配置文件。

如此一来每次我们需要切换环境时只需要修改此配置即可。但此方式也明细的不足,比如:每次切换环境时都需要修改此配置,在修改后也存在文件误传Git的风险,单体项目来说尚可接受,但对于Spring Cloud微服务项目而言操作就很麻烦了。

二、配置详情

结合IDEA自带的maven插件来实现不同配置的切换,每次切换环境只要勾选就行了。

在这里插入图片描述

2.1 pom.xml修改

新增以下内容:

<build><resources><resource><directory>src/main/resources</directory><!-- 指定目录下的文件通过maven过滤器 --><filtering>true</filtering></resource></resources>
</build><profiles><profile><id>dev</id><properties><!-- 环境标识,需要与配置文件的名称相对应 --><profile.active>dev</profile.active><nacos.username>nacos</nacos.username><nacos.password>nacos</nacos.password></properties><activation><!-- 默认环境 --><activeByDefault>true</activeByDefault></activation></profile><profile><id>test</id><properties><!-- 环境标识,需要与配置文件的名称相对应 --><profile.active>test</profile.active><nacos.username>nacos</nacos.username><nacos.password>nacos</nacos.password></properties></profile>
</profiles>

Maven过滤器会替换文件中的占位符@变量名@,可以查看编译后的文件,原本的占位符被变量值所替代。

2.2 bootstrap.yml/application.yml修改

spring:profiles:active: @profile.active@

注:占位符 ‘@maven中配置的变量名@’,我的名称为profile.active

http://www.lryc.cn/news/29283.html

相关文章:

  • ES 7.7.0 数据迁移
  • 【玩转c++】vector讲解和模拟底层实现
  • 基本类型、包装类型、引用类型、String等作为实参传递后值会不会改变?
  • Tomcat服务器配置以及问题解决方案
  • 【Node.js】HTTP协议、HTTP的请求报文和响应报文
  • CodeForce 455A. Boredom
  • geoserver之BlobStores使用
  • 跨域问题以及Ajax和Axios的区别
  • 现代卷积神经网络(AlexNet)
  • 单向非循环链表
  • Vue2的基本内容(一)
  • 蚁群算法优化最优值
  • Docker镜像的内部机制
  • 每日的时间安排规划
  • 【C++】类和对象——六大默认成员函数
  • 远程debug被arthas watch了的idea
  • Cesium实现的光柱效果
  • 你最爱记混的slice()和splice()
  • 【LeetCode】剑指 Offer(15)
  • 【刷题笔记】之二分查找(搜索插入位置。在排序数组中查找元素的第一个和最后一个位置、x的平方根、有效的完全平方数)
  • 一起Talk Android吧(第五百一十五回:绘制向外扩散的水波纹)
  • 基于粒子群改进的支持向量机SVM的情感分类识别,pso-svm情感分类识别
  • 【python中的列表和元组】
  • 世界顶级五大女程序媛,不仅技术强还都是美女
  • Linux- 系统随你玩之--文件管理-双生姐妹花
  • 18、多维图形绘制
  • 【C++】30h速成C++从入门到精通(STL介绍、string类)
  • PMP是什么意思?适合哪些人学呢?
  • 【SpringBoot 事务不回滚?怎么解决?】
  • 软件研发管理经验总结 - 技术管理