gpt4 book ai didi

java - Spring Boot yaml 属性作为 map 不起作用

转载 作者:行者123 更新时间:2023-12-02 11:42:56 30 4
gpt4 key购买 nike

我正在使用 Spring boot 1.5.9。我无法让这个简单的配置类工作。我在这里缺少什么?

yaml 文件:

lala:
jobs:
foo1: bar
foo2: bar
foo: lala

配置类:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import java.util.HashMap;
import java.util.Map;

@Configuration
@ConfigurationProperties(prefix = "lala", ignoreUnknownFields = false)
@PropertySource("classpath:jobs.yml")
public class Jobs {
private Map<String, String> jobs = new HashMap<>();
private String foo;

public Map<String, String> getJobs() {
return jobs;
}

public void setJobs(Map<String, String> jobs) {
this.jobs = jobs;
}

public String getFoo() {
return foo;
}

public void setFoo(String foo) {
this.foo = foo;
}

@Override
public String toString() {
return "Jobs{" +
"jobs=" + jobs +
", foo='" + foo + '\'' +
'}';
}
}

我不断收到:Jobs{jobs={}, foo='null'}

最佳答案

You can't load YAML the way you're doing it now.

YAML files can’t be loaded via the @PropertySource annotation. So in the case that you need to load values that way, you need to use a properties file.

主要的替代方案是使用 application.yml 文件而不是专用的 jobs.yml 文件。如果您必须进行分离,那么您唯一的选择是使用属性文件。

关于java - Spring Boot yaml 属性作为 map 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48405953/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com