当前位置: 首页 > news >正文

Spring Boot 优雅配置yml配置文件定义集合、数组和Map

一、@value 获取配置文件

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

# 配置日志输出级别
logging:# 指定logback配置文件的位置 config: classpath:logback-spring.xml# 文件日志要输出的路径path: E:/logs/springboot_server# 日志的输出级别level:root: info

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

@Value("${logging.path}")
private String path;    // 获取日志文件的输出路径

二、 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;
}

三、定义对象list集合获取配置文件

单个对象List

首先创建一个user对象如下:

@Data
public class User implements Serializable
{  private static final long serialVersionUID = 1L;private String appId;private String password;}

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

jwt:userlist:- appId: YiBaoTongpassword: 123456- appId: ZhiKepassword: 123456

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

@Data
@Component
@ConfigurationProperties(prefix = "jwt") // 配置 文件的前缀
public class JwtConfigBean
{/*** 用户列表*/private List<User> userlist;
}

List对象中包含List

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

@Data
@Component
@ConfigurationProperties(prefix = "jwt") // 配置 文件的前缀
public class JwtConfigBean {/*** 用户列表*/private List<UserTest> userList;@Dataprivate static class UserTest {private String appId;private List<String> passwordList;}}

yml 文件配置

jwt:userList:- appId: '121212'passwordList: '活动时间流程节点-PromoTimeValidNode,活动时间流程节点-PromoTimeValidNode2'- appId: 'werw3313'passwordList: '活动时间流程节点-PromoTimeValidNode,活动时间流程节点-PromoTimeValidNode2'

四、数组获取配置文件

yaml 格式如下:

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

五、定义Map集合配置文件

yaml 格式如下:

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

六、参考链接

spring boot 的yml配置文件定义list集合、数组和map以及使用中出现的错误_yml配置map类型的数据注入失败-CSDN博客

http://www.lryc.cn/news/210642.html

相关文章:

  • java+springboot+vue开发的大学生健康检测小程序
  • 从零开始的LINUX(四)
  • 组播应用层收不到问题-接收网卡绑定
  • 回流重绘零负担,网页加载快如闪电
  • QT5.15在Ubuntu22.04上编译流程
  • 【电路笔记】-交流波形和交流电路理论
  • vue2 系列:自定义 v-model
  • 广东木模板批发,建筑桥梁工程专用组合木模板
  • 工业相机常见的工作模式、触发方式
  • 【C语言】指针那些事(上)
  • liunx Centos-7.5上 rabbitmq安装
  • 蓝桥杯学长经验笔记
  • 开发库介绍
  • 基于单片机的智能清洁小车设计—控制系统设计
  • 玩转视图变量,轻松实现动态可视化数据分析
  • 【51单片机】:智能施工电梯系统
  • 前端线上部署,如何通知用户有新版本
  • Debezium日常分享系列之:Debezium2.4版本之用于 MongoDB的Debezium 连接器
  • 编程应用场景:便利店商超进销存管理系统软件,试用版可以免费试用下载
  • 【LInux】进程概念II -- 描述进程
  • 紫光集团、展讯通信、锐迪科(RDA)、紫光展锐以及翱捷科技(ASR)关系梳理
  • 7.多线程之单例模式
  • docker 常用指令
  • Numpy、Pandas、Matplotlib学习(更新ing...)
  • Linux-sdio接口
  • 【MATLAB源码-第62期】基于蜣螂优化算法(DBO)的无人机三维地图路径规划,输出最短路径和适应度曲线。
  • RealVNC Enterprise 7.7.0 Crack
  • Windows下Jenkins自动化部署SpringBoot应用
  • Leetcode59螺旋矩阵2
  • 抖音很火的情侣飞行棋/真心话大冒险/情侣扫雷html网站源码带在线支付、代理分销等!