Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 映射为的Springboot yaml属性不起作用_Java_Spring Boot - Fatal编程技术网

Java 映射为的Springboot yaml属性不起作用

Java 映射为的Springboot yaml属性不起作用,java,spring-boot,Java,Spring Boot,我使用的是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;

我使用的是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'}

无法通过@PropertySource注释加载YAML文件。因此,如果需要以这种方式加载值,则需要使用属性文件


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

如何初始化spring应用程序?显示您的Application.java类代码?!在Jobs类中,使用带有@ConfigurationProperties注释的前缀,如@ConfigurationPropertiesprefix=lala。