Spring Boot 集成教程


概述

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

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

spring boot项目中,application.properties是配置文件,实际上我们还可以引入不同环境的配置文件,如:application-dev.properties,application-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. 201706 Ruby 基础 & 元编程

    yield yield self Proc yield带参数 rails中:yield 和 content_for methods.proc.lambda.block 闭包(用proc延长变量的生命周 ...

  2. elasticsearch kibana logstash(ELK)的安装集成应用

    官网关于kibana的学习指导网址是:https://www.elastic.co/guide/en/kibana/current/index.html Kibana是一个开源的分析和可视化平台,设计 ...

  3. use matplotlib to draw scatter plot

    There are many pionts in this kind of table. How to do it? We can use scatter() to draw it. Code: im ...

  4. python爬虫笔记01

    1.urllib库中request,parse的学习 1.1 简单的请求页面获取,并下载到本地 request的使用 from urllib import request # 获取此网页的demout ...

  5. gitolite服务器配置的一些心得

    1.假设说有服务器1,hostname为lab1,服务器2,hostname为lab2,分别生成的给对方使用的公钥为server-lab1.pub.server-lab2.pub,服务器1和2都有自己 ...

  6. cf 764A、762A、764B

    颓废题 764A #include<bits/stdc++.h> #define LL long long #define N 100005 #define lowbit(x) x& ...

  7. php.basic.functions

    array_unshift call_user_func_array闭包 下面是学院的代码 class Container { protected $binds; protected $instanc ...

  8. redis在.Net程序中使用

    1.设置访问密码 config 2.连接redis服务器 private static string redisHost = ConfigHelper.GetAppSetting("redi ...

  9. 负载均衡与CDN简介

    负载均衡 负载均衡是高可用网络基础架构的的一个关键组成部分,有了负载均衡,我们通常可以将我们的应用服务器部署多台,然后通过负载均衡将用户的请求分发到不同的服务器用来提高网站.应用.数据库或其他服务的性 ...

  10. 【数据结构】C++语言无锁环形队列的实现

    无锁环形队列 1.Ring_Queue在payload前加入一个头,来表示当前节点的状态 2.当前节点的状态包括可以读.可以写.正在读.正在写 3.当读完成后将节点状态改为可以写,当写完成后将节点状态 ...