从0开始学习SpringCould(8)--SpringBoot 分环境读取配置文件
来源:互联网 发布:淘宝联盟机器人免费版 编辑:程序博客网 时间:2024/05/21 15:48
上一篇文件说到,SpringBoot 多环境配置
多环境配置主要对配置数据源、redis、MongoDB、eureka等等进行配置,这些都是系统本身的东西,真是使用场景中还会有一些业务参数需要放到配置文件中,如调用的接口地址、访问一些系统的APP_ID等,这些也需要自动区分环境来获取。
本篇简单介绍,SpringBoot分环境读取配置文件;
SpringBoot读取配置文件的方法有很多种,本文只介绍一种:使用映射类读取配置;
一、引入maven
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional></dependency>
不需要注明version,会根据springboot版本自动选择
二、创建配置文件
在resources
目录下创建配置文件
config-dev.properties
开发环境 config-test.properties
而是环境
并在配置文件中随便定义一个值用于测试
如:
在config-dev.properties
中写入 nowProfile=dev
在config-test.properties
中写入 nowProfile=test
现在resources目录下已经有两个自定义配置文件,两个配置文件中都包含nowProfile这个KEY并且等于不同的值
三、编写映射类
import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.PropertySource;import org.springframework.stereotype.Component;/** * 从配置文件中读取参数 * Created by zhoudong on 2017/12/21. */@Component@ConfigurationProperties(prefix="")@PropertySource("classpath:config-${spring.profiles.active}.properties")public class Config { private String nowProfile; // 此处忽略get and set 请自行生成}
ConfigurationProperties
表示告诉SpringBoot 它可以把配置文件中的哪些东西转换成对象prefix
前缀,如hexun.pay,就是表示把配置文件中hexun.pay.**的KEY全部映射到本类中;
PropertySource
配置文件的路径
可以使用${}
获取application.yml
中的配置,也是实现分环境自动读取配置文件的关键${spring.profiles.active}
如果搞不明白什么意思,建议返回查看上一篇文章
四、开启配置文件映射功能
在${项目名}Application.java的类名上方添加以下配置即可 @EnableConfigurationProperties(Config.class)
附图
五、测试
5.1、注入
被Spring管理的类使用前要注入,这个不需要解释
@Autowiredprivate Config config;
5.2、编写测试接口
/** * 测试读取配置文件 * @return */ @GetMapping("/config") public @ResponseBody String config(){ return "当前环境:" + config.getNowProfile(); }
5.3、在swagger查看结果
5.4、切换运行环境(此步不太了解请参阅上一篇)
再次运行项目,并重新测试
可以看到,返回的当前环境已经更换为:dev
本篇结束,谢谢!
更多内容请关注微信公众号:
- 从0开始学习SpringCould(8)--SpringBoot 分环境读取配置文件
- 从0开始学习SpringCould(1)--SpringBoot项目搭建
- 从0开始学习SpringCould(3)--SpringBoot 定时任务
- 从0开始学习SpringCould(4)--SpringBoot 集成freemarker
- 从0开始学习SpringCould(6)--SpringBoot 集成swagger2
- 从0开始学习SpringCould(7)--SpringBoot 多环境配置
- 从0开始学习SpringCould(2)--SpringBoot yml简单配置
- 从0开始学习SpringCould(5)--SpringBoot 集成Mybatis使用Druid数据源
- 从0开始学习SpringCould(9)--Eureka 服务注册发现
- 从今天开始学习springboot--
- 从0开始学习SpringBoot-第1天
- 从0开始学习SpringBoot-第2天
- 从0开始学习SpringBoot-第3天
- springcould学习(二)之eureka
- SpringBoot读取配置文件乱码
- springboot读取自定义配置文件
- SpringBoot配置文件读取
- SpringBoot读取配置文件
- Python开发环境安装
- 第一阶段-入门详细图文讲解tensorflow1.4 -(十一)TensorBoard Histogram Dashboard
- 在Action中以Struts2的方式输出JSON数据
- Mybatis中模糊查询时相关的参数传递及xml配置
- 最近出现Matlab2010b点击matlab.exe运行时,不断提示Activate MathWorks Software,无法正常使用
- 从0开始学习SpringCould(8)--SpringBoot 分环境读取配置文件
- dubbo服务启动注册报 java.net.UnknownHostException 未知的名称或服务解决办法
- bootstrap treeview 下拉树 (二) checkBox多选
- Android Studio3.0.0之前首次安装通用配置
- Ubuntu下Lenovo笔记本无法使用无线网卡上网的问题
- 自定义Tabbar
- 浅谈 IIC I2C 总线协议
- hdu 4135 Co-prime(容互原理 DFS+位运算求解)
- 梯度下降算法中的Adagrad和Adadelta