Spring-Boot外部化配置

16次阅读

共计 661 个字符,预计需要花费 2 分钟才能阅读完成。

通常情况,一个项目从开发到上线需要经历多个环境。例如程序员在自己的开发环境完成 Coding,QA 在测试环境完成对软件的测试。而最终软件运行在生产环境对外提供服务,产生真正的业务价值。一个正规的系统研发流程会按顺序经历如下多个环境:DEV->TEST->SIT->PRE->PROD。
那么问题就来了,各个环境间肯定会存在差异 (例如各个环境的数据源配置一定是不同的),如何让我们开发好的应用能正常的运行在不同的环境呢?这就需要外部化配置。简单的说就是提前在代码中定义好配置项,代码中引用的是配置项的 key,配置项真正的 value 放置在应用外部(包括配置文件、命令行参数、系统环境变量等等),这样不同的环境就可以根据自身情况定义不同的 value。
本文会先介绍 Spring Framework Environment 的概念,有了基础之后再来看 Spring Boot 的 Externalized Configuration。

Environment

Spring 的 Environment 接口用来抽象 application 正在运行的环境,它有两个核心概念:profile 和 properties。
profile 用于限制一组 bean 的定义,这组 bean 只有在该 profile 处于激活状态时才会被注入到 Spring 容器中。
properties 就是一组配置项,它可以有多个来源:properties 配置文件,JVM 参数,系统环境变量等等。
下面分别对 profile 和 profiles 进行详细介绍

Profile

Properties

SpringBoot 外部化配置

正文完
 0