Spring Boot 集成教程


概述

本文介绍spring boot项目中环境配置切换的过程。

在实际的项目开发中,经常需要不同的环境配置,如开发时不能直接连生产环境的数据库,而上线时就需要连生产环境的数据库。这就要求项目能够切换环境配置。

spring boot项目中,application.properties是配置文件,实际上我们还可以引入不同环境的配置文件,如:application-dev.propertiesapplication-prod.properties,通过指定spring.profiles.active的值切换配置文件,比如在application.properties中指定:

spring.profiles.active=xxx

就可加载application-xxx.properties配置。

切换环境的常用方法

1.上面提到的application.properties设置spring.profile.active的值。

2.命令行中指定参数

通过指定jvm系统参数

java -jar -Dspring.profiles.active=prod springboot-profile-demo 0.0.1-SNAPSHOT.jar

通过指定应用参数

java -jar --spring.profiles.active=dev springboot-profile-demo 0.0.1-SNAPSHOT.jar

项目内容

创建一个简单的spring boot项目,引入不同的环境配置,用不同方法切换环境,访问接口打印当前环境。

要求

  • JDK1.8或更新版本
  • Eclipse开发环境

如没有开发环境,可参考前面章节:[spring boot 开发环境搭建(Eclipse)]。

项目创建

创建spring boot项目

打开Eclipse,创建spring boot的spring starter project项目,选择菜单:File > New > Project ...,弹出对话框,选择:Spring Boot > Spring Starter Project,在配置依赖时,勾选web,完成项目创建。

项目配置

如下图,除了application.properties,还添加了:

  • application-dev.properties - 开发环境配置
  • application-prod.properties - 生产环境配置
  • application-test.properties - 测试环境配置

application.properties文件内容

## 生产/开发等环境配置, 加载不同的配置文件
spring.profiles.active=dev ## 服务器端口,默认是8080
server.port=8096

application-dev.properties文件内容

## profile 名称
profile.name=dev

application-prod.properties文件内容

## profile 名称
profile.name=prod

application-test.properties文件内容

## profile 名称
profile.name=test

代码实现

项目目录结构如下图,我们实现了一个接口,访问此接口打印当前环境名称。

HelloController类

通过@Value注解读取profile.name,赋给profileName。访问/hello接口打印当前环境名称。

@RestController
public class HelloController { @SuppressWarnings("unused")
private static final org.slf4j.Logger log = LoggerFactory.getLogger(HelloController.class); // 当前环境配置名称
@Value("${profile.name}") //读取当前环境配置名称
private String profileName; @RequestMapping(value="/hello", method = RequestMethod.GET, produces="application/json")
public String hello() { return "当前环境:" + profileName;
}
}

运行

修改application.properties文件中的spring.profiles.active,加载对应的配置文件,然后访问接口/hello

## 生产/开发等环境配置, 加载不同的配置文件
spring.profiles.active=test

Eclipse左侧,在项目根目录上点击鼠标右键弹出菜单,选择:run as -> spring boot app 运行程序。 打开Postman访问接口,运行结果如下:

总结

完整代码

spring boot 环境配置(profile)切换的更多相关文章

  1. spring boot环境配置以及开发工具选择(Spring一)

    首先安装java jdk jdk的安装参考:https://blog.csdn.net/zhys0902/article/details/79499329配置效果如下: 接下来是maven的相关配置 ...

  2. spring boot环境配置

    Eclipse+Maven创建webapp项目<一> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...

  3. Spring boot 的profile功能如何实现多环境配置自动切换

    通常服务端应用开发需要经过以下几个流程: 开发 -> 测试 -> RC验证 -> 上线 这就涉及到四个不同的环境,开发环境.测试环境.RC环境以及生产环境,为了避免不同环境之间相互干 ...

  4. Spring Boot 属性配置&自定义属性配置

    在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring boot中的模块化配置,在pom.xml中依赖的每个Starter都有默认配置,而这些默认配 ...

  5. Spring Boot属性配置&自定义属性配置

    一.修改默认配置 例1.spring boot 开发web应用的时候,默认tomcat的启动端口为8080,如果需要修改默认的端口,则需要在application.properties 添加以下记录: ...

  6. Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件

    本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...

  7. 玩转spring boot——properties配置

    前言 在以往的java开发中,程序员最怕大量的配置,是因为配置一多就不好统一管理,经常出现找不到配置的情况.而项目中,从开发测试环境到生产环境,往往需要切换不同的配置,如测试数据库连接换成生产数据库连 ...

  8. Spring Boot 环境变量读取 和 属性对象的绑定

    网上看到的一些方法,结合我看到的 和我们现在使用的.整理成此文: 第一种方法 参见catoop的博客之 Spring Boot 环境变量读取 和 属性对象的绑定(尊重原创) 第二种方法 class不用 ...

  9. Spring Boot 属性配置和使用

    Spring Boot 属性配置和使用 Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot ...

随机推荐

  1. 在ListView头和尾添加东西

    直接上代码 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view ...

  2. R WLS矫正方差非齐《回归分析与线性统计模型》page115

    rm(list = ls()) A = read.csv("data115.csv") fm = lm(y~x1+x2,data = A) coef(fm) A.cooks = c ...

  3. base64和blob

    base64是二进制数据的一个编码格式,就像utf8一样的东西,他跟json一样,也是前后端交互能够相互识别的数据,他更多的是用来传递文件数据,并且如果是图片的base64,可以用来压缩 获取base ...

  4. oracle进入CDB

    第一步:使用sys登陆 CONN sys/change_on_install AS SYSDBA; 第二步:查看现在的容器名称 SHOW con_name; 第三步:改变容器为PDB ALTER SE ...

  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-search

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  6. Problem J. Joseph’s Problem 约瑟夫问题--余数之和

    链接:https://vjudge.net/problem/UVA-1363 题意:给出n  k,当 i 属于 1~n 时 ,求解 n% i 的和 n 和 k 的范围都是 1 到 10^9; 商相同 ...

  7. 云服务器CentOS7系统环境配置(jdk和tomcat)

    配置jdk 下载与安装 如果没有安装wget,首先安装wget工具 yum -y install wget 安装完成后,在网上找到jdk的下载链接,可以在官网找点击此处到官网下载,如果官网下载慢也可以 ...

  8. 2020/2/21 fiyocms代码审计

    0x00 前言 上午上了网课,一上午就装好了cms,下午还有网课,要是结束的早就进行审计. 解决了一下phpstudy使用过程中: Forbidden You don't have permissio ...

  9. 10nm Ice Lake处理器值得等待!

    处理器.显卡等产品往往习惯先在 Linux 平台测试,所以 Linux 的内核源码往往成为曝光新品的宝藏之地. 经查,在 Linux v5.2 内核最新源码的 x86 分支中,出现了多款 Ice La ...

  10. HihoCoder第十一周:树中的最长路

    #1050 : 树中的最长路 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中, ...