学会springboot多环境配置方案不用5分钟
一 前言
本篇文章的主题是在springboot中写多个配置文件,指定让个配置文件生效,以便于达到在开发环境,测试环境,线上环境根据不同的配置灵活应用;读完本篇你将获得,学会springboot的多环境配置;学会使用idea配置虚拟机参数启动不同的配置文件;学会使用jar包运行并且指定不同的配置文件等;
二 激活方式一
spring框架内部提供了2中方式用于加载YAML文档,以供启动时读取配置文件;YamlPropertiesFactoryBean 会 加载 YAML 变为 Properties;YamlMapFactoryBean 会 转换 YAML 为map;使用YAML更加简便不用担心内部具体如何转换;
2.1pom.xml
引入依赖boor-start依赖和打包插件;jdk1.8版本,boot2.1.1;
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.2 application.yml
一切从简,知识追寻者不会在配置文件中写其他内容,就指定端口即可,用于区别不同的环境;其中配置开发环境为dev,生产环境为pro;默认激活dev 环境;
# 激活配置
spring:
profiles:
active: dev
---
# 配置一 开发环境
spring:
profiles: dev
server:
port: 8060
---
# 配置二 生产环境
spring:
profiles: pro
server:
port: 8061
2.3 controller
controller一个hell方法,用于浏览器测试;
@RestController
public class ZSZXZ {
@GetMapping("zszxz")
public String hello(){
return "hello 知识追寻者";
}
}
2.4 启动类
启动类添加@SpringBootApplication注解,表名是个springboot应用,会进行自动配置;
/**
* @Author lsc
* <p> 多环境配置 </p>
*/
@SpringBootApplication
public class ProfileApp {
public static void main(String[] args) {
SpringApplication.run(ProfileApp.class,args);
}
}
2.5 dev执行结果
启动工程,打开浏览器路径如下,端口是8086,说明默认激活dev环境已经成功

2.6 pro执行结果
application.yml中修改激活环境为pro后重启工程,修改浏览器端口,执行结果如下说明配置成功;
# 激活配置
spring:
profiles:
active: pro
执行结果

三 激活方式二
3.1 application.yml
去除application.yml中激活方式,知识追寻者改用idea配置VM参数选项方式进行激活;
---
# 配置一 开发环境
spring:
profiles: dev
server:
port: 8060
---
# 配置二 生产环境
spring:
profiles: pro
server:
port: 8061
3.2 idea配置VM参数
在VM选项中输入-Dspring.profiles.active=dev,表示激活dev环境;然后重启工程访问即可

四 项目部署方式
将工程打包成jar包,在cmd中如下命令执行,如果包名不同请替换,然后浏览器访问即可;
java -jar springboot-profile-1.0-SNAPSHOT.jar --Dspring.profiles.active=dev

五 多配置文件方式
上面的配置文件都写在一个application.yml中,过于累赘,为了方便查阅和解耦合,推荐多个配置文件方式,然后在主配置文件中激活,具体的步骤如下;
5.1 application-zszxz.yml
新建yml文件名为application-zszxz.yml;内容如下
server:
port: 8061
5.2 application-test.yml
新建yml文件名为application-test.yml;内容如下
server:
port: 8060
5.3 application.yml
修改application.yml内容如下
spring:
profiles:
active: zszxz
5.4 启动后结果
http://localhost:8061/zszxz 启动后结果 与之前一致,不再贴图浪费资源;
学会springboot多环境配置方案不用5分钟的更多相关文章
- SpringBoot 多环境配置
转载:https://www.cnblogs.com/gdpuzxs/p/7191436.html 在我们的实际开发中,一般都有三套环境,开发环境,测试环境,生产环境,三套环境的数据库连接配置也有所不 ...
- springboot 多环境配置yml或properties
https://www.cnblogs.com/mr-yang-localhost/p/8971327.html springboot 多环境配置 https://blog.csdn.net/li ...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战
笔记 1.SpringBoot多环境配置介绍和项目实战(核心知识) 简介:SpringBoot介绍多环境配置和使用场景 1.不同环境使用不同配置 例如数据库配置,在开发的时候, ...
- 项目开发中的pro、pre、test、dev环境及SpringBoot多环境配置
一.介绍: pro:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境. pre:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样. test:测试环境,外部用户无法访问,专 ...
- 【SpringBoot】14. SpringBoot多环境配置
SpringBoot多环境配置 Spring Boot 1.5.19.RELEASE 假设项目中需要3个环境--开发.测试.生产 profile :代表的就是一个环境变量 语法结构:applicati ...
- springboot多环境配置
springboot多环境(dev.test.prod)配置 2017-07-17 10:33 1290人阅读 评论(0) 收藏 举报 分类: spring boot(6) 版权声明:本文为博主原 ...
- 微服务-springboot多环境配置(开发生产测试环境切换)
springboot根据spring.profiles.active会去寻找应该加载开发环境配置还是生产环境配置 application.properties #生产环境,开发环境,测试环境切换 pr ...
- Java开发学习(三十七)----SpringBoot多环境配置及配置文件分类
一.多环境配置 在工作中,对于开发环境.测试环境.生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配 ...
- maven工程的多环境配置方案(profile)
前言: 写一篇水文来打发下时间吧^_^. 在应用开发中, 总会遇到开发/测试/预发布/线上环境, 其环境不同, 其具体的配置项也有所不同, 因此如何快速的切换各个环境配置, 进行打包配置, 成了一个小 ...
随机推荐
- MySql 常用时间函数
1.date() 提取日期或日期时间表达式的日期部分 select date(create_time) from blog_article; 2.date_format() select date_f ...
- Pandas中merge和join的区别
可以说merge包含了join的操作,merge支持通过列或索引连表,而join只支持通过索引连表,只是简化了merge的索引连表的参数 示例 定义一个left的DataFrame left=pd.D ...
- 《ASP.NET Core 高性能系列》关于性能的闲聊
一.通常的性能问题类型 让我们一起看看那些公共的性能问题,看看他们是或者不是.我们将了解到为什么我们常常在开发期间会错过这些问题.我们也会看看当我们考虑性能时语言的选择.延迟.带宽.计算等因素. 二. ...
- Visual studio 2015 与 mysql 连接
Visual Studio 2015 Community连接到MySQL,步骤很简单,但刚弄的时候一脸. 这个学期开了一门课程,老师教的是visual studio 2010来开发.net的,但是我自 ...
- Docker基础内容之数据持久化
数据卷的特性 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS 数据卷可以在容器之间共享和重用,相当于将一个分区挂载到多个目录下面 数据卷内容的修改会立马生效 数据卷的更新,不会影响镜像: ...
- .net core3.1 webapi + element-ui upload组件实现文件上传
首先,先看我个人的的项目结构. 这个webapi项目是专门用来做图片上传,其中分为两个控制器:单图片上传和多图片上传.而我接下来主要讲的还是单文件上传,对于多文件的上传,我暂且尚未研究成功. 其中pi ...
- RestTemplate远程调用方法
概述: spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接, 我们只需要传入url及返回值 ...
- caffe 指定GPU
caffe默认使用编号为0的gpu, 若它的内存不够或正忙, 即使有其余gpu空闲, caffe也不会使用. 要用哪个gpu, 就要明确指定哪个. 不指定则使用默认. 命令行 ./build/tool ...
- 基于 HTML5 WebGL 的智慧楼宇可视化系统
前言 可视化的智慧楼宇在 21 世纪是有急迫需求的,中国被世界称为"基建狂魔",全球高层建筑数量位居首位,所以对于楼宇的监控是必不可少.智慧楼宇可视化系统更多突出的是管理方面的功能 ...
- Linux学习2-云服务器上安装java和tomcat环境
在linux上部署java的项目,首先要安装JDK和Tomcat,具体要求怎么操作呢,我们一起来学习吧! JDK的安装步骤如下: 1.首先我们从官网下载jdk-8u231-linux-x64.rpm安 ...