在上一篇博客Spring Boot入门(一):使用IDEA创建Spring Boot项目并使用yaml配置文件中,我们新建了一个最原始的Spring Boot项目,并使用了更为流行的yaml配置文件。
但是一般情况下,我们开发的系统应用都会有多套环境, 如dev环境,qa环境,prod环境,
那么如何实现多套环境下的配置管理呢?
其实在Spring Boot下,我们可以使用Profile来实现,以下来讲解具体的实现方式。
1.使用Profile实现多环境配置管理
首先我们按照上篇博客中提到的方法新建2个配置文件:application-dev.yml,application-prod.yml。
如果有的同学比较喜欢用properties文件,可以用下图中的方式新建:
我们知道,默认情况下,启动的端口号为8080,如果我们希望在dev环境使用端口号8082,在prod环境使用端口号8083,那么可以修改配置文件如下:
application-dev.yml新增如下配置:
server:
port: 8082
application-prod.yml新增如下配置:
server:
port: 8083
此时,启动下Spring Boot项目
我们会发现,仍然使用的是默认的端口号8080,那么如何指定使用dev或者prod环境的端口呢?
我们需要在application.yml新增如下配置:
spring:
profiles:
active: dev
此时,再次启动Spring Boot项目,会发现使用的是端口号8082,也就是application-dev.yml文件中配置的。
如果希望使用prod环境的,可以修改配置为:
spring:
profiles:
active: prod
运行结果为:
2.获取配置文件值的两种方式
既然用到了配置文件,而且在平时的开发过程中,经常会将一些可能会修改的值放到配置文件中,那么在Spring Boot中,如何获取配置的文件的值呢?
我们现在就讲解下使用@Value注解或者@ConfigurationProperties注解来获取配置文件值的方法。
2.1方式1:使用@Value注解获取配置文件值
首先在application.yml中添加如下配置:
book:
author: wangyunfei
name: spring boot
然后修改Spring Boot项目启动类的代码如下:
package com.zwwhnly.springbootdemo;
import org.springframework