Java 映射为的Springboot yaml属性不起作用
我使用的是Spring boot 1.5.9。我无法让这个简单的配置类工作。我错过了什么 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;
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。