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

改进方法,直接spring注入

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 {

    @Bean
    public 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;
    }
    
}

调用

    @Autowired
    private 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-gen
      base-package:  com.my.test
      local-java-path:  D:\idea_workspace_mygitee\code-gen\mapstruct-mybatis-plus\java-code-gen\src\main\java
    - name:  service-gen2
      base-package:  com.my.test
      local-java-path:  D:\idea_workspace_mygitee\code-gen\mapstruct-mybatis-plus\java-code-gen\src\main\java
    - name:  service-gen3
      base-package:  com.my.test
      local-java-path:  D:\idea_workspace_mygitee\code-gen\mapstruct-mybatis-plus\java-code-gen\src\main\java

载入yml的配置类


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 {

    @Bean
    public YamlMapFactoryBean myData(){
        YamlMapFactoryBean yml = new YamlMapFactoryBean();
        yml.setResources(new ClassPathResource("my-data.yml"));
        return yml;
    }
}

接受数据DTO

@Data
public class MyDataCfg {

   private   List<MyDataDTO> data;
}
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通过名字注入

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

断点结果

在这里插入图片描述

相关推荐

  1. SpringBoot配置文件-application.yml

    2024-04-25 15:44:05       39 阅读
  2. SpringBootYAML文件使用

    2024-04-25 15:44:05       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-25 15:44:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-25 15:44:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-25 15:44:05       87 阅读
  4. Python语言-面向对象

    2024-04-25 15:44:05       96 阅读

热门阅读

  1. 代码随想录算法训练营day50

    2024-04-25 15:44:05       37 阅读
  2. centos firewalld开放某个端口

    2024-04-25 15:44:05       32 阅读
  3. cento常用命令

    2024-04-25 15:44:05       38 阅读
  4. MySql 查询优化

    2024-04-25 15:44:05       33 阅读
  5. PhaGCN2:病毒聚类

    2024-04-25 15:44:05       36 阅读
  6. Qt——设置字体样式

    2024-04-25 15:44:05       36 阅读
  7. PyTorch:深度学习领域的强大工具

    2024-04-25 15:44:05       35 阅读
  8. Git Submodule 全流程使用指南

    2024-04-25 15:44:05       30 阅读
  9. Eigen::Quaternion

    2024-04-25 15:44:05       38 阅读
  10. 【实用版】使用git管理项目代码git命令的方式

    2024-04-25 15:44:05       36 阅读