spring boot 读取配置文件(application.yml)中的属性值
在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值:
1、引入依赖:
- <!-- 支持 @ConfigurationProperties 注解 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-configuration-processor</artifactId>
- <optional>true</optional>
- </dependency>
2、配置文件(application.yml)中配置各个属性的值:
- myProps: #自定义的属性和值
- simpleProp: simplePropValue
- arrayProps: 1,2,3,4,5
- listProp1:
- - name: abc
- value: abcValue
- - name: efg
- value: efgValue
- listProp2:
- - config2Value1
- - config2Vavlue2
- mapProps:
- key1: value1
- key2: value2
3、创建一个bean来接收配置信息:
- @Component
- @ConfigurationProperties(prefix="myProps") //接收application.yml中的myProps下面的属性
- public class MyProps {
- private String simpleProp;
- private String[] arrayProps;
- private List<Map<String, String>> listProp1 = new ArrayList<>(); //接收prop1里面的属性值
- private List<String> listProp2 = new ArrayList<>(); //接收prop2里面的属性值
- private Map<String, String> mapProps = new HashMap<>(); //接收prop1里面的属性值
- public String getSimpleProp() {
- return simpleProp;
- }
- //String类型的一定需要setter来接收属性值;maps, collections, 和 arrays 不需要
- public void setSimpleProp(String simpleProp) {
- this.simpleProp = simpleProp;
- }
- public List<Map<String, String>> getListProp1() {
- return listProp1;
- }
- public List<String> getListProp2() {
- return listProp2;
- }
- public String[] getArrayProps() {
- return arrayProps;
- }
- public void setArrayProps(String[] arrayProps) {
- this.arrayProps = arrayProps;
- }
- public Map<String, String> getMapProps() {
- return mapProps;
- }
- public void setMapProps(Map<String, String> mapProps) {
- this.mapProps = mapProps;
- }
- }
启动后,这个bean里面的属性就会自动接收配置的值了。
4、单元测试用例:
- @Autowired
- private MyProps myProps;
- @Test
- public void propsTest() throws JsonProcessingException {
- System.out.println("simpleProp: " + myProps.getSimpleProp());
- System.out.println("arrayProps: " + objectMapper.writeValueAsString(myProps.getArrayProps()));
- System.out.println("listProp1: " + objectMapper.writeValueAsString(myProps.getListProp1()));
- System.out.println("listProp2: " + objectMapper.writeValueAsString(myProps.getListProp2()));
- System.out.println("mapProps: " + objectMapper.writeValueAsString(myProps.getMapProps()));
- }
测试结果:
- simpleProp: simplePropValue
- arrayProps: ["1","2","3","4","5"]
- listProp1: [{"name":"abc","value":"abcValue"},{"name":"efg","value":"efgValue"}]
- listProp2: ["config2Value1","config2Vavlue2"]
- mapProps: {"key1":"value1","key2":"value2"}
spring boot 读取配置文件(application.yml)中的属性值的更多相关文章
- Spring Boot 的配置文件application.properties
Spring Boot 中的application.properties 是一个全局的配置文件,放在src/main/resources 目录下或者类路径的/config下. 作为全局配置文件的app ...
- 一:Spring Boot 的配置文件 application.properties
Spring Boot 的配置文件 application.properties 1.位置问题 2.普通的属性注入 3.类型安全的属性注入 1.位置问题 当我们创建一个 Spring Boot 工程时 ...
- 是时候搞清楚 Spring Boot 的配置文件 application.properties 了!
在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml . 虽然 properties 文件比较常见,但是相对于 properties 而言,ya ...
- spring boot读取配置文件
一.springboot配置文件 核心配置文件和自定义配置文件.核心配置文件是指在resources根目录下的application.properties或application.yml配置文 ...
- 第二篇:彻底搞清楚 Spring Boot 的配置文件 application.properties
前言 在Spring Boot中,配置文件有两种不同的格式,一个是properties,另一个是yaml. 虽然properties文件比较常见,但是相对于properties而言,yaml更加简洁明 ...
- IDEA开发spring boot应用时 application.yml 或 application.properties 自定义属性提示
在使用spring boot开发过程中,经常会定义一些应用自己的属性,直接写到application配置文件中使用@Value注解进行使用,这样使用也没有什么问题.不过我认为更优雅的方式是定义自己的属 ...
- spring boot 读取配置文件信息
1.读取application.properties @Component @ConfigurationProperties(prefix="images.product.column&qu ...
- Spring Boot读取配置文件的几种方式
Spring Boot获取文件总的来说有三种方式,分别是@Value注解,@ConfigurationProperties注解和Environment接口.这三种注解可以配合着@PropertySou ...
- springboot工程读取配置文件application.yml的写法
现在流行springboot框架的项目,里面的默认配置文件为application.yml,我们怎样读取这个配置文件呢? 先贴上我得配置文件吧 目录结构 里面内容 1 写读取配置文件的工具类 @Con ...
随机推荐
- sql2008查看备份进度
SELECT session_id, request_id, start_time, status, command, sql_handle --,statement_start_offset, st ...
- [错误处理]AttributeError: 'generator' object has no attribute 'next'
在python3下学习yield用法. 程序如下: def bar(n): m = n while True: m += 1 yield m b = bar(3) print(b.next()) 程序 ...
- mongodb的安装和sql操作
mongodb安装环境:centos6.5https://www.mongodb.org/dl/linux/x86_64wget https://fastdl.mongodb.org/linux/mo ...
- linux系统负载状态检查脚本
为了便于分析问题,编写了一个linux状态检查脚本,脚本可放置任意目录,脚本执行检测后会输出日志记录到当前目录下.直接执行脚本可用于一次检测,可通过日志进行分析.如果需要长时间监测,可执行-x参数,脚 ...
- Spring MVC请求参数绑定
所谓请求参数绑定,就是在控制器方法中,将请求参数绑定到方法参数上 @RequestParam 绑定单个请求参数到方法参数上 @RequestParam("id") Integer ...
- ABC128F Frog Jump
题目链接 题目大意 给定一个长为 $n$ 的数组 $s$,下标从 $0$ 开始.$ 3 \le n \le 10^5$,$-10^9 \le s_i \le 10^9$,$s_0 = s_{n - 1 ...
- C++ Essentials 之 lower_bound 和 upper_bound 的比较函数格式不同
第一次注意到这个问题. cppreference 上的条目: lower_bound upper_bound C++17 草案 N4659 lower_bound template<class ...
- [WC2013][luogu4074] 糖果公园 [树上带修改莫队]
题面: 传送门 思路: 一道实现起来细节比较恶心的题目 但是其实就是一个裸的树上带修改莫队 好像树上莫队也出不了什么结合题目,不像序列莫队天天结合AC自动机.后缀数组...... 莫队学习请戳这里:莫 ...
- git下载其他人分支的代码
1. 在工作空间,右键,打开Git Bash 2. clone主分支的代码(即下载主分支代码的过程) 执行命令: git clone xxx.git 3. 进入工程目录 cd xxx 4. 切换到 ...
- git refs 详解
https://blog.csdn.net/taiyangdao/article/details/52766424 http://www.chenchunyong.com/2017/01/06/git ...