首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Boot学习笔记系列之Spring Boot配置特殊格式的属性值

本篇主要介绍Spring Boot 读取配置文件中的几种特殊的属性,如:布尔类型、整数、小数、数组,List和Set、Map和实体类格式的属性读取。

1

配置属性读取

之前的文章已经介绍了Spring Boot 读取配置文件的有三种方法这里就不再详细描述了,直接上方法 下面是在配置文件中配置的信息:

data:

str:字符串可以不加引号

escapeStr:"双引号直接输出\n特殊字符"

notEscapeStr:'单引号可以转义\n特殊字符'

flag:false

num:1234

Dnum:66.66

list:

- listdata1

- listdata2

- listdata2

listMap:#List>

-name:listmap1

value:value1

-name:listmap2

value:value2

set:

- setdata1

- setdata2

- setdata2

arr:[1,2,2,3]

map:{key1:v1,key2:v2}

attentions:

-name:tom

sex:F

-name:kyle

sex:M

配置一个读取properties的bean,这里命名为DataProperties.java 详细代码如下:

@Component

@ConfigurationProperties(prefix="data")

public classDataProperties {

//字面值,字符串,布尔,数值

/**

*普通字符串

*/

privateStringstr;

/**

*转义特殊字符串

*/

privateStringescapeStr;

/**

*输出特殊字符串

*/

privateStringnotEscapeStr;

/**

*布尔类型

*/

privateBooleanflag;

/**

*整数

*/

privateIntegernum;

/**

*小数

*/

privateDoubledNum;

/**

*数组,List和Set,两种写法: 第一种:-空格value,每个值占一行,需缩进对齐;第二种:[1,2,...n]行内写法

*/

privateListlist;// list可重复集合

privateSetset;// set不可重复集合

/**

*数组

*/

privateString[]arr;

privateList>listMap;

/**

* Map和实体类,两种写法:第一种:key空格value,每个值占一行,需缩进对齐;第二种:行内写法

*/

privateMapmap;// Map K-V

privateListattentions;//复合结构,集合对象

//省略setter getter

在controller控制中添加调用的方法,代码如下 :

@Autowired

privateDataPropertiesdataProperties;

@RequestMapping("/data")

publicStringdata() {

returndataProperties.toString();

}

页面打印的内容如下:

DataProperties, ], map=, attentions=[Attention, Attention]}

2

随机值配置

配置文件中$可以用来生成各种不同类型的随机值,从而简化了代码生成的麻烦,例如 生成int 值、long 值或者 string 字符串。

etu:

key:${random.value}

number:${random.int}

bigNumber:${random.long}

uuid:${random.uuid}

intNumber:${random.int[10]}

range:${random.int[1,100]}

使用方法

@RequestMapping("/etu")

publicStringetu() {

return"random:"+etuProperties.getKey()+"-number:"+etuProperties.getNumber()+"-long:"+etuProperties.getBigNumber()

+"-uuid:"+etuProperties.getUuid()+"-int:"+etuProperties.getIntNumber()+"-range:"+etuProperties.getRange();

}

打印出来的信息为:

random:592d6d174472ec7cfc302286b4d67cbd-int:-181604665-long:2109255637824194186-uuid:327f29d0-7fc9-42cb-9a81-4171784135c1-range:88

3

总结

1

Spring Boot 支持两种格式的配置文件,其中YAML的数据结构比properties更清晰。

2

YAML 是专门用来写配置文件的语言,非常简洁和强大。

3

YAML 对空格的要求很严格,且不能用Tab键代替。

4

YAML 通过空格缩进的程度确定层级,冒号后面有空格,短横线后面有空格。

5

ConfigurationProperties注解适合批量注入配置文件中的属性,Value注解适合获取配置文件中的某一项。

6

ConfigurationProperties注解支持数据校验和获取复杂的数据,Value注解支持SpEL表达式

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180727G1XCI800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券