![](/img/trans.png)
[英]How do I load nested key value pairs from a properties file into a Java object using Spring?
[英]How to load nested key value pairs from a properties file in SpringBoot
是否有更好的方法使用Spring / Spring Boot实现将键值对作为值的属性文件? 我想创建一个属性文件,其中的键包含一对键值对作为值。
我尝试了以下实现:-
属性文件:
Fiat=model:pet,year:1996
Honda=model:dis,year:2000
我有下面的类试图读取属性文件。
@Component
@PropertySources(@PropertySource("classpath:sample.properties"))
public class PropertiesExtractor {
@Autowired
private Environment env;
public String pullValue(String node) {
String value = env.getProperty(node);
System.out.println(value);//for Fiat, i get syso as **model:pet,year:1996**
}
}
我需要使用java解析值,以获得单个值。 这是实现此目标的唯一出路。
有没有更好的方法在Java中使用嵌套属性文件?
使用model
和year
属性创建Car
对象或其他东西。 然后创建这样的东西
@ConfigurationProperties("foo")
public class CarProperties {
private Map<String,Car> cars;
// Getters/Setters
}
在主配置类中添加添加@EnableConfigurationProperties(CarProperties.class)
。
然后,您可以按如下方式注入该配置:
foo.cars.Fiat.model=pet
foo.cars.Fiat.year=1996
foo.cars.Honda.model=dis
foo.cars.Honda.year=2000
在文档中有更多信息。
您还可以将yaml文件与spring一起使用:
这样,您可以与
Fiat:
model: pet
year: 1996
Honda:
model: dis
year: 2000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.