簡體   English   中英

如何從SpringBoot中的屬性文件加載嵌套鍵值對

[英]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中使用嵌套屬性文件?

使用modelyear屬性創建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一起使用:

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-yaml

這樣,您可以與

Fiat:
  model: pet
  year: 1996
Honda:
  model: dis
  year: 2000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM