SpringBoot中yml配置文件:定义list集合、数组及注意事项_Java知音_的博客-CSDN博客

点击关注公众号,实用技术文章及时了解0fbf624d2af702ab710cf2c4762c0047.png

来源:__blog.csdn.net/you18131371836/article/

details/104839901

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<String> include;}

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

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

@Datapublic 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<User> 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<String , String> maps;}

以上就是spring boot yml配置文件定义基本数据类型和引用数据类型的方式

推荐

主流Java进阶技术(学习资料分享)

Java面试题宝典

加入Spring技术开发社区

d370e2afc5ac0c943136a19cf24a9b0c.png

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!


原网址: 访问
创建于: 2023-07-17 12:14:36
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论