
java application.yml 配置对象数组
Java yml文件中配置数组对象
·
java application.yml 配置对象数组
application.yml 配置对象数组
- 定义配置文件结构: 用于定义配置文件的数据结构
## 打印服务中用到的打印机信息配置
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<PrinterInfo> printers;
}
- 定义对象: 用于定义配置文件的数据结构
@Data
public class PrinterInfo implements Serializable {
/*** 编号*/
private String id;
/*** 打印机名*/
private String print_name;
/*** 主机加端口号*/
private String host;
}
- 使用:
/**
* 标签打印机的配置信息
*/
@Autowired
public PrinterConfigs printers;//1定义并获取值
//拿到集合中的数组对象
List<PrinterInfo> printList = printers.getPrinters();
常规对象中获取属性
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 常规对象中获取属性
# 用户信息
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;
场景
在项目的使用过程中,一些经常会变动的值,一般会定义枚举类,比如单据类型:
如图,它实际上也就是key\value 的键值对,但这是硬编码,在需要增加时,就需要修改代码、重启服务。
实际应用中,会存在两种模式来配置这些信息,一种是将这些枚举的键值对配置在数据库中,如下图
在使用到时按照条件去数据库中查找。只需要往数据库中添加数据,不需要重启服务。
而修改配置文件的方式,实施人员自己结合现场实际修改之后重启服务,即完成,也相对灵活,但数据量大的情况下不建议使用。
点击阅读全文
更多推荐
活动日历
查看更多
直播时间 2025-02-26 16:00:00


直播时间 2025-01-08 16:30:00


直播时间 2024-12-11 16:30:00


直播时间 2024-11-27 16:30:00


直播时间 2024-11-21 16:30:00


目录
所有评论(0)