使用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中使用嵌套属性文件?
答案 0 :(得分:3)
创建Car
对象或具有model
和year
属性的对象。然后创建像这样的东西
@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
文档中有更多信息。
答案 1 :(得分:3)
您也可以将yaml文件与spring一起使用:
这样,您可以使用
Fiat:
model: pet
year: 1996
Honda:
model: dis
year: 2000