实现项目的多环境配置的方法有很多,比如通过在Pom.xml中配置profiles(最常见) 然后在Install项目打War包的时候,根据需求打不同环境的包,如图:

这种配置多环境的方法在SSM框架中使用的最多,但在SpringBoot中使用最多的是在启动SpringBoot项目的时候指定运行环境,下面也是主要描述这种配置的方法:

1.添加配置文件

在SpringBoot的Resources目录下建4个配置文件 application.yml、application-dev.yml、application-qa.yml、application-online.yml

dev:开发环境

qa:测试环境

online:生产环境

然后在application.yml配置文件中配置默认的运行环境:

spring:
profiles:
active: dev

然后在dev、qa、online中分别配置不同的配置内容,例如变更端口:

dev

server:
port: 8085
servlet:
context-path: /api
tomcat:
max-threads: 100
connection-timeout: 5000
spring:
profiles: dev

qa

server:
port: 8086
servlet:
context-path: /api
tomcat:
max-threads: 100
connection-timeout: 5000
spring:
profiles: qa

online

server:
port: 8087
servlet:
context-path: /api
tomcat:
max-threads: 100
connection-timeout: 5000
spring:
profiles: online

然后在 SpringBoot系统列 1 - HelloWorld!  的基础上继续添加代码,新建WebConfig用于存放SpringBoot的一些配置信息(SpringBoot的配置即可以在配置文件中配置,也可以在类中配置):

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringBootConfiguration; /**
* 配置类
* @author XIHONGLEI
* @date 2018-10-31
*/
@SpringBootConfiguration
public class WebConfig { @Value("${server.port}")
public String port;
}

然后改造一下HelloContrlller,为了区分环境,我们在请求/api/hello的时候将端口号展示出:

import com.hello.WebConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @Autowired
private WebConfig webConfig; @RequestMapping("hello")
public String hello() {
return "Hello World! port:".concat(webConfig.port);
}
}

然后在pom.xml配置Jar包的打包配置:

<packaging>jar</packaging>
<build>
<finalName>spring-boot-hello</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>com.hello.Application</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

然后Install,找打Jar包 spring-boot-hello.jar;

在Window控制台或者Linux中可以使用java -jar spring-boot-hello.jar来启动SpringBoot项目,然后通过在后方添加--spring.profiles.active来指定启动SpringBoot项目时使用的环境:

# Dev环境
$ java -jar spring-boot-hello.jar --spring.profiles.active=dev # qa环境
$ java -jar spring-boot-hello.jar --spring.profiles.active=qa # online环境
$ java -jar spring-boot-hello.jar --spring.profiles.active=online

例启动Online环境:

然后通过 http://localhost:8087/api/hello 来访问,因为Online中配置的端口是8087

完成!

在IDEA中怎么在运行的时候选定执行环境,可以通过配置Application的program arguments中配置运行环境:

SpringBoot系统列 2 - 配置文件,多环境配置(dev,qa,online)的更多相关文章

  1. SpringBoot系统列 1 - HelloWorld!

    学习SpringBoot系统列之HelloWorld! 1.新建一个Maven项目 2.添加POM配置 <parent> <groupId>org.springframewor ...

  2. WIN7系统JavaEE(java+tomcat7+Eclipse)环境配置

    https://jingyan.baidu.com/article/3a2f7c2e62d25e26afd611fa.html WIN7系统JavaEE(java+tomcat7+Eclipse)环境 ...

  3. SpringBoot在启动时的多环境配置以及加载顺序

    通常我们在开发完成一个SpringBoot项目时,总是要打包部署的. 在启动SpringBoot应用时,我们常常会使用命令java -jar xxx.jar来启动这个服务. 命令java -jar 除 ...

  4. SpringBoot | 第五章:多环境配置

    前言 写上一篇看英文资料,耗费了心力呀,这章,相对来说简单点.也比较熟悉,但是这很实用.不扯了,开始~ 多环境配置 maven的多环境配置 springboot多环境配置 总结 老生常谈 多环境配置 ...

  5. windows系统下简单nodej.s环境配置 安装

    国内目前关注最高,维护最好的一个关于nodejs的网站应该是http://www.cnodejs.org/ windows系统下简单nodejs环境配置. 第一步:下载安装文件 下载地址:官网 htt ...

  6. 配置文件,环境配置和war报分离,方便生产更改

    在生产环境实现配置文件和war包 的分离,为方便在必要的时候进行一定的更改,可以避免修改包,但是需要重启 最初为这样的选择配置,单不知为何未生效,修改为配置2配置方法,但不灵活,待跟进.配置1: &l ...

  7. windows系统下简单node.js环境配置 安装

    国内目前关注最高,维护最好的一个关于nodejs的网站应该是http://www.cnodejs.org/ windows系统下简单nodejs环境配置. 第一步:下载安装文件 下载地址:官网 htt ...

  8. (四)Spring Boot之配置文件-多环境配置

    一.Properties多环境配置 1. application.properties配置激活选项 spring.profiles.active=dev 2.添加其他配置文件 3.结果 applica ...

  9. Ubuntu系统下《汇编语言》环境配置

    说明 1.系统:Ubuntu codists@pc:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Des ...

随机推荐

  1. mysql error

    一.could not find driver  我们这里以 PDO 为例, 问题: PDO 连接数据库找不到驱动程序. 解决方法:在 php.ini 里面讲 php_pdo_mysql 和 php_ ...

  2. Alpha冲刺(3/10)——2019.4.26

    所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(3/10)--2019.4.26 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...

  3. win10电脑录教学视频的时候有回声或者通话的时候有回声,严重干扰录制效果,解决方式。

    1.右键点击屏幕右下脚的小喇叭图标. 2.选择声音. 3.选择“录制”,出现如下 4.选择侦听 5.把侦听此设备 的打勾去掉.然后点击应用,点击确定,即可. 再也没有回声的烦恼了.

  4. rest_framework中视图相关

    模型类的定义 # 定义图书模型类BookInfo class BookInfo(models.Model): btitle = models.CharField(max_length=20, verb ...

  5. button标题左对齐

    Button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;//左对齐(UIControlContentHo ...

  6. Android SDK版本号 与 API Level 对应关系

    转自:https://blog.csdn.net/qiaoquan3/article/details/70185550 Android SDK版本号 与 API Level 对应关系   新接触And ...

  7. Unsupervised pre-training

    如图所示: 假设你想要解决一个复杂的任务,你没有太多的标记的训练数据,但不幸的是,你不能找到一个类似的任务训练模型. 不要失去所有希望! 首先,你当然应该尝试收集更多的有标签的训练数据,但是如果这太难 ...

  8. 大数据学习环境搭建(CentOS6.9+Hadoop2.7.3+Hive1.2.1+Hbase1.3.1+Spark2.1.1)

    node1 192.168.1.11 node2 192.168.1.12 node3 192.168.1.13 备注 NameNode Hadoop Y Y 高可用 DateNode Y Y Y R ...

  9. 用GO开发企业级分布式云存储系统

    一.基础架构 二.开发工具

  10. Exchange Online Mailbox Restoration

    User Account is already deleted in AD.User Mailbox is already deleted in Exchange. 1. Connect to Exc ...