栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

java application.yml 配置对象数组

Java 更新时间:发布时间: 百科书网 趣学号

java application.yml 配置对象数组
    • application.yml 配置对象数组
    • 常规对象中获取属性
    • 场景

application.yml 配置对象数组
  1. 定义配置文件结构: 用于定义配置文件的数据结构
## 打印服务中用到的打印机信息配置
printer-configs:
  printers:
    - id: 1
      print_name: printName1
      host: 127.0.0.1:8083/print/printTest/
    - id: 2
      print_name: printName2
      host: 127.0.0.1:8083/print/printTest/
    - id: 3
      print_name: printName3
      host: 127.0.0.1:8083/print/printTest/

从上面代码可看出,根节点 printer-configs,包含一个List 对象printers,其中printers数组中又包含3个对象,每个对象有三个属性。(一个‘-’短线代表一个对象)
2. 定义配置文件的根节点 进行展示;

@Data
@Component
@ConfigurationProperties(prefix = "printer-configs")
public class PrinterConfigs {
	 
    private List printers;
}
  1. 定义对象: 用于定义配置文件的数据结构
@Data
public class PrinterInfo implements Serializable {
    
    private String id;
    
    private String print_name;
    
    private String host;
}
  1. 使用:
    @Autowired
    public PrinterConfigs printers;//1定义并获取值
    
    //拿到集合中的数组对象
	List printList = printers.getPrinters();
常规对象中获取属性

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 常规对象中获取属性
# 用户信息
userinfo:
	name: 张三
	password: 123
# 打印服务中用到的打印机信息配置
printer-configs:
 printers:
   - id: 1
     print_name: print1
     host: 127.0.0.1:8083/print/printTest/
   - id: 2
     print_name: print2
     host: 127.0.0.1:8083/print/printTest/
   - id: 3
     print_name: print3
     host: 127.0.0.1:8083/print/printTest/

需要获取 userinfo 中的 name 属性
此时不需要像之前一样复杂的定义对象,只需要使用如下的方式便能拿到需要的数据

	@Value("${userinfo.name}")
    public String name;
	@Value("${userinfo.password}")
    public String password;
场景

在项目的使用过程中,一些经常会变动的值,一般会定义枚举类,比如单据类型:

如图,它实际上也就是keyvalue 的键值对,但这是硬编码,在需要增加时,就需要修改代码、重启服务。
实际应用中,会存在两种模式来配置这些信息,一种是将这些枚举的键值对配置在数据库中,如下图

在使用到时按照条件去数据库中查找。只需要往数据库中添加数据,不需要重启服务。
而修改配置文件的方式,实施人员自己结合现场实际修改之后重启服务,即完成,也相对灵活,但数据量大的情况下不建议使用。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/888722.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号