学会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)
前言: 写一篇水文来打发下时间吧^_^. 在应用开发中, 总会遇到开发/测试/预发布/线上环境, 其环境不同, 其具体的配置项也有所不同, 因此如何快速的切换各个环境配置, 进行打包配置, 成了一个小 ...
随机推荐
- 简单理解设计模式——享元模式-线程池-任务(tesk)
前面在写到多线程的文章的时候,一直想写一篇关于线程池等一系列的文章,做一下记录,本篇博客记录一下设计模式中享元模式的设计思想,以及使用享元模式的实现案例——线程池,以及线程池的简化版——任务(tesk ...
- 机器学习环境配置系列五之keras2
keras一个大坑就是配置文件的问题,网上会给很多的误导,让我走了很多弯路. 1.安装keras2 conda install keras 2.环境配置 echo ‘{ "epsilon&q ...
- axios请求方法封装.
axios的使用上一般封装好对应的方法,ES6导出,直接调用,消息通知使用了ElementUI的Message组件. 这是一个封装了axios的Rest风格的工具类,包扩常用的POST,GET,PUT ...
- 个人第四次作业Alpha2版本测试
个人第四次作业Alpha2版本测试 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 团队名称 GP工作室 这个作业的目标 对其他小组的项目进行测试 测试人员 陈杰 学号 20173102 ...
- c#数字图像处理(二)彩色图像灰度化,灰度图像二值化
为加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像,在灰度图像上得到验证的算法,很容易移植到彩色图像上.24位彩色图像每个像素用3个字节表示,每个字节对应着R.G.B分量的亮度(红.绿 ...
- Java容器解析系列(14) IdentityHashMap详解
IdentityHashMap,使用什么的跟HashMap相同,主要不同点在于: 数据结构:使用一个数组table来存储 key:value,table[2k] 为key, table[2k + 1] ...
- jmeter使用—响应断言
断言的作用:一个HTTP请求发出去,怎么判断执行的任务是否成功呢?通过检查服务器响应数据,是否返回预期想要的数据,如果是,判断任务成功,反之任务失败. 1.添加断言:选中一个取样器,右键->添加 ...
- 【模板】普通平衡树(权值splay)
安利splay讲解: [洛谷日报第62期]Splay简易教程 [模板]普通平衡树(luogu) Description 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下 ...
- 解决Idea的Generate Sources无法生成QueryDSL问题
今天是2020年第一天在家办公,就出现了跟在公司不一样的现象,deploy项目到maven库时失败,之前一直成功. 查到原因在于QueryDSL类没有生成,但为何在公司可以而在家里就不行呢? 鉴于Id ...
- Linux中软件安装包的格式
一.Linux常用安装包及安装方法 1.安装包一般有四类: 1)tar包,如software-1.2.3-1.tar.gz.他是使用UNIX系统的打包工具tar打包的. 2)rpm包,如softwar ...