springboot yml配置文件定义list集合、数组和map以及使用中的错误

 更新时间:2023年07月28日 09:14:11   作者:骑着蜗牛@you  
这篇文章主要介绍了springboot yml配置文件定义list集合、数组和map以及使用中遇到的错误问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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对象如下:

@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<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配置文件定义基本数据类型和引用数据类型的方式。

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JPA @Basic单表查询如何实现大字段懒加载

    JPA @Basic单表查询如何实现大字段懒加载

    这篇文章主要介绍了JPA @Basic单表查询如何实现大字段懒加载的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java异常跟踪栈定义与用法示例

    Java异常跟踪栈定义与用法示例

    这篇文章主要介绍了Java异常跟踪栈定义与用法,结合具体实例形式分析了异常处理栈的概念、原理及相关使用技巧,需要的朋友可以参考下
    2018-05-05
  • Java 数据结构七大排序使用分析

    Java 数据结构七大排序使用分析

    这篇文章主要介绍了Java常用的排序算法及代码实现,在Java开发中,对排序的应用需要熟练的掌握,这样才能够确保Java学习时候能够有扎实的基础能力。那Java有哪些排序算法呢?本文小编就来详细说说Java常见的排序算法,需要的朋友可以参考一下
    2022-04-04
  • Eclipse中maven异常Updating Maven Project的统一解决方案

    Eclipse中maven异常Updating Maven Project的统一解决方案

    今天小编就为大家分享一篇关于Eclipse中maven异常Updating Maven Project的统一解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • SpringBoot整合Redisson的步骤(单机版)

    SpringBoot整合Redisson的步骤(单机版)

    Redisson非常适用于分布式锁,而我们的一项业务需要考虑分布式锁这个应用场景,于是我整合它做一个初步简单的例子(和整合redis一样)。
    2021-05-05
  • mybatis整合spring实现开启mapper.xml映射文件扫描

    mybatis整合spring实现开启mapper.xml映射文件扫描

    这篇文章主要介绍了mybatis整合spring实现开启mapper.xml映射文件扫描,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Mybatis Generator最完美配置文件详解(完整版)

    Mybatis Generator最完美配置文件详解(完整版)

    今天小编给大家整理了一篇关于Mybatis Generator最完美配置文件详解教程,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-11-11
  • Java中注解@Async实现异步及导致失效原因分析

    Java中注解@Async实现异步及导致失效原因分析

    Async注解用于声明一个方法是异步的,当在方法上加上这个注解时将会在一个新的线程中执行该方法,而不会阻塞原始线程,这篇文章主要给大家介绍了关于Java中注解@Async实现异步及导致失效原因分析的相关资料,需要的朋友可以参考下
    2024-07-07
  • intelliJ IDEA 多行选中相同内容的快捷键分享

    intelliJ IDEA 多行选中相同内容的快捷键分享

    这篇文章主要介绍了intelliJ IDEA 多行选中相同内容的快捷键分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • JAVA算法起步之快速排序实例

    JAVA算法起步之快速排序实例

    这篇文章主要介绍了JAVA算法起步之快速排序实例,需要的朋友可以参考下
    2014-02-02

最新评论