一 前言

本篇文章的主题是在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环境已经成功

http://localhost:8060/zszxz

2.6 pro执行结果

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

# 激活配置
spring:
profiles:
active: pro

http://localhost:8061/zszxz

执行结果

三 激活方式二

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分钟的更多相关文章

  1. SpringBoot 多环境配置

    转载:https://www.cnblogs.com/gdpuzxs/p/7191436.html 在我们的实际开发中,一般都有三套环境,开发环境,测试环境,生产环境,三套环境的数据库连接配置也有所不 ...

  2. springboot 多环境配置yml或properties

    https://www.cnblogs.com/mr-yang-localhost/p/8971327.html   springboot 多环境配置 https://blog.csdn.net/li ...

  3. 小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战

    笔记 1.SpringBoot多环境配置介绍和项目实战(核心知识)     简介:SpringBoot介绍多环境配置和使用场景 1.不同环境使用不同配置         例如数据库配置,在开发的时候, ...

  4. 项目开发中的pro、pre、test、dev环境及SpringBoot多环境配置

    一.介绍: pro:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境. pre:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样. test:测试环境,外部用户无法访问,专 ...

  5. 【SpringBoot】14. SpringBoot多环境配置

    SpringBoot多环境配置 Spring Boot 1.5.19.RELEASE 假设项目中需要3个环境--开发.测试.生产 profile :代表的就是一个环境变量 语法结构:applicati ...

  6. springboot多环境配置

    springboot多环境(dev.test.prod)配置 2017-07-17 10:33 1290人阅读 评论(0) 收藏 举报  分类: spring boot(6)  版权声明:本文为博主原 ...

  7. 微服务-springboot多环境配置(开发生产测试环境切换)

    springboot根据spring.profiles.active会去寻找应该加载开发环境配置还是生产环境配置 application.properties #生产环境,开发环境,测试环境切换 pr ...

  8. Java开发学习(三十七)----SpringBoot多环境配置及配置文件分类

    一.多环境配置 在工作中,对于开发环境.测试环境.生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配 ...

  9. maven工程的多环境配置方案(profile)

    前言: 写一篇水文来打发下时间吧^_^. 在应用开发中, 总会遇到开发/测试/预发布/线上环境, 其环境不同, 其具体的配置项也有所不同, 因此如何快速的切换各个环境配置, 进行打包配置, 成了一个小 ...

随机推荐

  1. 玩转Django2.0---Django笔记建站基础九(二)(Auth认证系统)

    9.4 设置用户权限 用户权限主要是对不同的用户设置不同的功能使用权限,而每个功能主要以模型来划分.以9.3节的MyDjango项目为例,在Admin后台管理系统可以查看并设置用户权限,如下图: 用户 ...

  2. 深入浅出MyBatis技术原理与实战

    第1 章 MyBatis 简介..................................................................................... ...

  3. 光流法draw_flow()函数报错

    光流法draw_flow()函数报错 import cv2 from scipy import * def draw_flow(im, flow, step=16): ""&quo ...

  4. Postwoman-接口测试工具

    地址是:https://postwoman.io/ ,不过只能使用它们自己提供的测试接口,如果你调试自己的API接口的话,你需要自己部署一套代码. 自己搭建一套Postwomen环境的话,只需要安装了 ...

  5. git---如何在远程某个分支的基础上新建分支

    问题场景 技术主管让你去再某个git分支上新建一个分支去做你的项目,那么如何在原远程分支的基础上新建自己的分支呢? 解决方法 按照以下命令敲即可 git branch newBranch //新建本地 ...

  6. Docker Swarm 从入门到放弃

    准备工作 我本机是macOS,所以我直接安装了docker desktop,其中包含了docker-machine,不用单独安装. 安装docker主机驱动 我在网上很多人提到了使用virtualbo ...

  7. 使用Gradle构建springboot多模块项目,并混合groovy开发

    idea设置本地gradle 打包: build.gradle //声明gradle脚本自身需要使用的资源,优先执行 buildscript { ext { springBootVersion = ' ...

  8. SpringBoot+MyBatis项目Dao层最简单写法

    前言 DAO(Data Access Object) 是数据访问层,说白了就是跟数据库打交道的,而数据库都有哪几种操作呢?没错,就是增删改查.这就意味着Dao层要提供增删改查操作. 不知道大家是怎么写 ...

  9. Ceph 存储集群5-数据归置

    一.数据归置概览 Ceph 通过 RADOS 集群动态地存储.复制和重新均衡数据对象.很多不同用户因不同目的把对象存储在不同的存储池里,而它们都坐落于无数的 OSD 之上,所以 Ceph 的运营需要些 ...

  10. C语言实现查询whois

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdl ...