springboot 载入自定义的yml文件转DTO

server/2024/12/22 2:56:44/

改进方法,直接spring注入

java">import cn.hutool.json.JSONUtil;
import org.springframework.beans.factory.config.YamlMapFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;import java.util.Map;@Configuration
public class MyDataYml {@Beanpublic MyDataCfg myData(){YamlMapFactoryBean yml = new YamlMapFactoryBean();yml.setResources(new ClassPathResource("my-data.yml"));Map<String, Object> map = yml.getObject();MyDataCfg project = JSONUtil.parse(map.get("project")).toBean(MyDataCfg.class);return project;}}

调用

java">    @Autowiredprivate MyDataCfg myData;

json解析的pom引入

        <dependency><groupId>cn.hutool</groupId><artifactId>hutool-json</artifactId><version>5.8.20</version></dependency>

resources目录下的my-data.yml

project:data:- name:  service-genbase-package:  com.my.testlocal-java-path:  D:\idea_workspace_mygitee\code-gen\mapstruct-mybatis-plus\java-code-gen\src\main\java- name:  service-gen2base-package:  com.my.testlocal-java-path:  D:\idea_workspace_mygitee\code-gen\mapstruct-mybatis-plus\java-code-gen\src\main\java- name:  service-gen3base-package:  com.my.testlocal-java-path:  D:\idea_workspace_mygitee\code-gen\mapstruct-mybatis-plus\java-code-gen\src\main\java

载入yml的配置类

java">
import org.springframework.beans.factory.config.YamlMapFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;@Configuration
public class MyDataYml {@Beanpublic YamlMapFactoryBean myData(){YamlMapFactoryBean yml = new YamlMapFactoryBean();yml.setResources(new ClassPathResource("my-data.yml"));return yml;}
}

接受数据DTO

java">@Data
public class MyDataCfg {private   List<MyDataDTO> data;
}
java">import cn.hutool.core.annotation.Alias;
import lombok.Data;@Data
public class MyDataDTO {@Alias("name")private String name;@Alias("base-package")private String basePackage;@Alias("local-java-path")private String localJavaPath;
}

调用

spring通过名字注入

java">import cn.hutool.json.JSONUtil;
import javax.annotation.Resource;
import java.util.Properties;@Resource(name = "myData")private Properties p;MyDataCfg project = JSONUtil.parse(p.get("project")).toBean(MyDataCfg.class);

断点结果

在这里插入图片描述


http://www.ppmy.cn/server/9724.html

相关文章

基于JavaWeb手工艺品购物系统的设计与实现

1、系统演示视频&#xff08;演示视频&#xff09; 2、需要请联系

SEW减速机参数查询 2-2 实践

首先说说结论&#xff1a;在不和SEW官方取得沟通之前&#xff0c;你几乎无法直接通过查阅SEW官方文档得到相关减速机的所有技术参数&#xff1a;比如轴的模数和齿数&#xff0c;轴承的参数。我在周一耗费了一个上午&#xff0c;最终和SEW方面确认后才知晓相关技术参数需要凭借销…

转念是最快提升逆商的方式!

逆商&#xff0c;即逆境商数&#xff08;Adversity Quotient&#xff09;&#xff0c;是指一个人面对困难和挑战时的应对能力。在充满不确定性的现代社会&#xff0c;逆商的重要性日益凸显。然而&#xff0c;提升逆商并非一蹴而就&#xff0c;它需要时间、实践和策略。在这篇文…

数据融合概念解析:特征融合与特征交互

特征融合与特征交互的区别 我是目录 特征融合与特征交互的区别前言三者关系三者定义特性融合(Feature Fusion):特征拼接(Feature Concatenation):特征交互(Feature Interaction): 特征融合和特征交互关键的不同点数据处理目的应用 总结 前言 遥感系列第14篇。遥感图像处理方向…

Python 将PowerPoint (PPT/PPTX) 转为HTML格式

PPT是传递信息、进行汇报和推广产品的重要工具。然而&#xff0c;有时我们需要将这些精心设计的PPT演示文稿发布到网络上&#xff0c;以便于更广泛的访问和分享。本文将介绍如何使用Python将PowerPoint文档转换为网页友好的HTML格式。包含两个示例&#xff1a; 目录 Python 将…

C语言学习笔记之指针(二)

指针基础知识&#xff1a;C语言学习笔记之指针&#xff08;一&#xff09;-CSDN博客 目录 字符指针 代码分析 指针数组 数组指针 函数指针 代码分析&#xff08;出自《C陷阱和缺陷》&#xff09; 函数指针数组 指向函数指针数组的指针 回调函数 qsort() 字符指针 一…

element el-table写多级表头

效果图&#xff1a; <template><div class"result-wrapper"><dynamic-table :table-data"tableData" :table-header"tableConfig" v-if"dynamicTableShow"></dynamic-table></div> </template>&l…

【弱监督语义分割】DuPL:双学生鲁棒性弱监督语义分割

DuPL: Dual Student with Trustworthy Progressive Learning for Robust Weakly Supervised Semantic Segmentation CVPR 2024 摘要&#xff1a; 与繁琐的多阶段相比&#xff0c;带有图像级标签的单阶段弱监督语义分割&#xff08;WSSS&#xff09;因其简化性而受到越来越多的…