当前位置: 首页 > 知识库问答 >
问题:

YML列表/数组到java集合映射不工作

郜杰
2023-03-14

我有以下配置和java代码来映射yml配置,但是其余的,肥皂和javascript属性没有被映射。

尝试了接受答案中给出的方法,但没有成功https://stackoverflow.com/a/50410542/10644550

Spring boot版本:Spring-boot-2.7.0

任何帮助都将不胜感激。

application.yml

bpmn:
  prop:
    rest:
    - http-rest-service
    - REST
    soap:
      - http-soap-service
      - SOAP
    javascript:
      - JAVASCRIPT
      - JS-script-worker
    test1: 1235

Java代码:

package com.example.orchestration.properties;

import lombok.Data;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Set;

@Configuration
@Component
@ConfigurationProperties(prefix = "bpmn.prop")
@PropertySource("application.yml")
@Setter
public class BpmnProperties {


   //@Value("${rest}")
   Set<String> rest;
    //@Value("soap")
    Set<String> soap;
   // @Value("javascript")
    Set<String> javascript;

    String test1;




    public boolean isRest(String str){
        return rest.contains(str);
    }
    public boolean isSoap(String soap){
        return this.soap.contains(soap);
    }
    public boolean isJs(String js){
        return javascript.contains(js);
    }

    @PostConstruct
    public void init(){
        System.out.println(rest);
        System.out.println("test "+test1);
    }

}

共有1个答案

司马辉
2023-03-14

从Spring Boot 2.2开始,您可以将注释简化为

@ConfigurationProperties(prefix = "bpmn.prop")
public class BpmnProperties {

并添加

@ConfigurationPropertiesScan("com.example.orchestration.properties")

去你的主班。

 类似资料:
  • 假设我有一个名为student的对象列表。对象Student的定义如下 在学生列表中,可以有多个具有相同studentName但不同CourseTaking的学生对象。现在我想把学生名单变成一张studentName和courseTaking的地图,如下所示 关键是studentName,而值是将同一学生的所有课程设置放在一起作为一个集合。我如何使用stream()&collection()来实现

  • 你可以定义一个新的名或从下拉式菜单中选择导入到现有的表或集合。 【注意】如果你在“目标表”或“目标集合”输入一个新的名,在“是新的”内的框将会自动显示为“是”。 导入多个表或集合时,所有表或集合会显示在列表中。

  • 我有一个列表 >输入,如下所示: 我试图通过对CURRENCY、PUBLISH_REGION、SOURCE和RECON_STATUS列进行分组来创建另一个列表 >。并将所有唯一状态值作为数据透视添加到输出映射中,并使用JOB_ID_COUNT汇总/聚合计数。 我期待以下响应:输出: 尝试按多个映射字段分组时,我遇到编译时错误。单字段groupingBy工作正常。任何帮助都是非常有效的。

  • 在对这个话题进行了大量的测试和研究之后,我无法完全解决我的问题。我正在springboot应用程序中使用modelmapper进行实体/DTO映射。我正在尝试配置modelmapper,将一个集合映射到一个简单的DTO对象。我已经创建了一个自定义转换器,它正在按预期工作: 我现在的问题是将此转换器应用于所有“集合”= 如果我直接在模型映射器中添加转换器,它就是不工作。 你对此有什么提示或解决办法吗

  • 假设我有一个函数,它接受两个参数并返回一个值,那么可以将映射转换为流中的列表作为非终端操作吗?我能找到的最近的方法是使用地图上的forEach创建实例并将其添加到预定义列表中,然后从该列表中启动一个新流。还是我错过了什么? 经典的“在一长串单词中找出3个最常出现的单词” (现在我想流式处理该地图的入口集)

  • 我有一个实体,看起来像这样: 输入数据是一个