要读取yaml文件,我正在执行以下操作
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties("partners")
public class YAMLConfig {
private Map<String,String> partners = new HashMap<>();
public void setPartners(Map<String, String> partners) {
this.partners = partners;
}
public Map<String, String> getPartners() {
return partners;
}
}
yaml文件
person2:
name: bbb
addresses:
to: jiang
bit: su
partners:
p1: wallet
p2: wallet
p3: wallet
在其他Java文件中,我正在自动接线以使YamlConfig高于
@Service
public class ObjectModificationService {
@Autowired
YAMLConfig yamlConfig;
public JSONObject modify(JSONObject jsonObject ) {
String type = yamlConfig.getPartners().get(partnerName.toLowerCase());
}
}
我没有得到上面的任何类型,还检查了yamlConfig.getPartners()在调试中它是否为null。我正在按照本教程进行操作:https://www.baeldung.com/spring-yaml,但是当我放置不带ConfigurationProperties(“ partners”)的ConfigurationProperties时,IDE再次显示错误。
答案 0 :(得分:0)
在yml配置类中,已将属性注释设置为“伙伴”,这意味着YAMLConfig类将尝试仅读取伙伴部分。不会读取“ person2”部分。
要检索依赖项注入的值,只需调用:yamlConfig.getPartners()
此外,请确保application.yml位于资源目录和/或与.jar相同的目录中
答案 1 :(得分:0)
您已指定合作伙伴地图接受字符串值。因此,请尝试在Yaml配置文件中使用用引号('')格式化的Map值
person2:
name: bbb
addresses:
to: jiang
bit: su
partners:
p1: 'wallet'
p2: 'wallet'
p3: 'wallet'