1.在平时的yml配置文件中,我们经常使用到配置基本数据类型的字符串,比如配置日志文件的写法如下:

# 配置日志输出级别

logging:

# 指定logback配置文件的位置

config: classpath:logback-spring.xml

# 文件日志要输出的路径

path: E:/logs/springboot_server

# 日志的输出级别

level:

root: info

获取属性值的话可以通过@value 注解来实现,如下:

@Value("${logging.path}")

private String path; // 获取日志文件的输出路径

2.下面说一下如何在yml配置文件中定义list集合、对象集合、数组以及map集合等

2.1定义list集合

# 拦截器路径拦截或者不拦截配置

interceptorconfig:

path:

#该路径下任何类型请求均拦截

include:

- /api/v1/token/api_token

- /api/v1/yibaotong/save

或者写成

# 拦截器路径拦截或者不拦截配置

interceptorconfig:

path:

#该路径下任何类型请求均拦截

include: [/api/v1/token/api_token,/api/v1/yibaotong/save]

这里需要注意的是,定义list集合不能用@value注解来获取list集合的所有值,需要定义一个配置类bean,然后使用 @ConfigurationProperties注解来获取list集合值,做法如下:

@Data

@Component

@ConfigurationProperties(prefix = "interceptorconfig.path") // 配置文件的前缀

public class InterceptorPathBean

{

/*

* 需要拦截的路径

*/

private List include;

}

如果使用@value注解会报错;

2.2 定义对象list集合,首先创建一个user对象如下:

@Data

public class User implements Serializable

{

private static final long serialVersionUID = 1L;

private String appId;

private String password;

}

然后yml配置文件的写法如下:

jwt:

userlist:

- appId: YiBaoTong

password: 123456

- appId: ZhiKe

password: 123456

定义配置bean使用@ConfigurationProperties注解获取对象集合值:

@Data

@Component

@ConfigurationProperties(prefix = "jwt") // 配置 文件的前缀

public class JwtConfigBean

{

/**

* 用户列表

*/

private List userlist;

}

2.3 定义数组,格式如下:

interceptorconfig:

path:

includes: /api/v1,/api/v2 #注意要用逗号分隔开

可以通过@value注解获取数组值,如下:

@Value("${interceptorconfig.path.includes}")

private String[] includes;

也可以通过创建配置类bean,使用@ConfigurationProperties注解获取,如下:

@Data

@Component

@ConfigurationProperties(prefix = "interceptorconfig.path") // 配置 文件的前缀

public class InterceptorPathBean

{

private String[] includes;

}

2.4 定义map集合,如下:

interceptorconfig:

path:

maps: {name: 小明,age: 24}

或者写成:

interceptorconfig:

path:

maps:

name: 小明

age: 24

通过创建配置类bean,使用@ConfigurationProperties注解获取map值,如下:

@Data

@Component

@ConfigurationProperties(prefix = "interceptorconfig.path") // 配置 文件的前缀

public class InterceptorPathBean

{

private Map maps;

}

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: