【问题标题】:Convert Yaml properties object to Java object将 Yaml 属性对象转换为 Java 对象
【发布时间】:2020-03-25 16:30:05
【问题描述】:

这是我的 Yaml 属性文件

bb:
  employees:
   -
    employee1:
      name: Syed
      locations:
        - HYD
        - MAA
   -
    employee2:
      name: Adhil
      locations:
        - BOM
        - DEL

我想在我的应用程序中将对象转换为我的 POJO。但是我做不到,它总是返回null。

我有什么遗漏的吗?

@Data

@Builder
 @AllArgsConstructor
@NoArgsConstructor
@Configuration
@ConfigurationProperties(prefix = "bb")
public class EmpConfig {

    EmployeeDetails employees;
}

EmployeeDetails 类

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Configuration

public class EmployeeDetails {

    List<Map<String, List<String>>> details;
}

【问题讨论】:

  • 在配置中使用 bb.employees,但在 Config 类中使用employeeDetails。
  • @Saphyra,更新了问题。但是它返回相同的
  • 总是返回 null 不是我们能理解的。谁,何时,显示堆栈跟踪等
  • 没有 stackTrace :) EmpConfig.employees 在服务启动后只是 null。
  • @Saphyra,没有stacktrace,因为它只返回null,否则没有异常

标签: java java-8 yaml lombok


【解决方案1】:

我是这样工作的:

YAML(称为 application.yaml)(在employeeIds(employee1,employee2)之前删除破折号)

bb:
  employees:
    employee1:
      name: Syed
      locations:
        - HYD
        - MAA
    employee2:
      name: Adhil
      locations:
        - BOM
        - DEL

配置类:

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Configuration
@ConfigurationProperties(prefix = "bb")
public class EmpConfig {
    private Map<String, EmployeeDetails> employees;
}

员工详细信息:

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class EmployeeDetails {
    private String name;
    private List<String> locations;
}

所以基本上你的语法和数据类型都有问题,所以 Spring 无法解析配置文件。

【讨论】:

  • 像魅力一样工作。谢谢。
【解决方案2】:

这对我有用,而无需修改您的结构。

YAML 看起来像:

bb:
  employees:
      employee:
        - name: Syed
          locations:
            - HYD
            - MAA

        - name: Adhil
          locations:
            - BOM
            - DEL

输出是

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2020-09-01
    • 2017-08-16
    • 1970-01-01
    • 2019-02-10
    • 2018-10-14
    • 2014-07-05
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多