springboot application.yml配置dev_spring boot 环境配置(profile)切换


章节

  • Spring Boot 介绍
  • Spring Boot 开发环境搭建(Eclipse)
  • Spring Boot Hello World (restful接口)例子
  • spring boot 连接Mysql
  • spring boot配置druid连接池连接mysql
  • spring boot集成mybatis(1)
  • spring boot集成mybatis(2) – 使用pagehelper实现分页
  • spring boot集成mybatis(3) – mybatis generator 配置
  • spring boot 接口返回值封装
  • spring boot输入数据校验(validation)
  • spring boot rest 接口集成 spring security(1) – 最简配置
  • spring boot rest 接口集成 spring security(2) – JWT配置
  • spring boot 异常(exception)处理
  • spring boot 环境配置(profile)切换
  • spring boot redis 缓存(cache)集成

概述

本文介绍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 – 测试环境配置

springboot application.yml配置dev_spring boot 环境配置(profile)切换_第1张图片

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

代码实现

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

springboot application.yml配置dev_spring boot 环境配置(profile)切换_第2张图片

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访问接口,运行结果如下:

springboot application.yml配置dev_spring boot 环境配置(profile)切换_第3张图片


总结
完整代码

你可能感兴趣的:(springboot)