Comment charger des paires de valeurs de clé nestedes à partir d’un fichier de propriétés dans SpringBoot

Existe-t-il une meilleure manière d’implémenter le fichier de propriétés avec des paires clé-valeur comme valeur à l’aide de Spring / Spring Boot? Je veux créer un fichier de propriétés où la clé contient une paire de paires clé-valeur en tant que valeur.

J’ai essayé ci-dessous la mise en œuvre: –

Fichier de propriétés: –

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

Et j’ai sous la classe essayant de lire le fichier de propriétés.

 @Component @PropertySources(@PropertySource("classpath:sample.properties")) public class PropertiesExtractor { @Autowired private Environment env; public Ssortingng pullValue(Ssortingng node) { Ssortingng value = env.getProperty(node); System.out.println(value);//for Fiat, i get syso as **model:pet,year:1996** } 

}

Je dois parsingr les valeurs en utilisant Java pour obtenir la valeur individuelle. Est-ce la seule façon de mettre en œuvre cela?

Existe-t-il un meilleur moyen d’utiliser des fichiers de propriétés nesteds en Java?

Vous pouvez également utiliser des fichiers yaml avec Spring:

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

De cette façon, vous pouvez travailler avec

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

Créez un object Car ou un object avec une propriété model et year . Ensuite, créez quelque chose comme ça

 @ConfigurationProperties("foo") public class CarProperties { private Map cars; // Getters/Setters } 

Ajoutez add @EnableConfigurationProperties(CarProperties.class) dans votre classe de configuration principale.

Ensuite, vous pouvez injecter cette configuration comme suit:

 foo.cars.Fiat.model=pet foo.cars.Fiat.year=1996 foo.cars.Honda.model=dis foo.cars.Honda.year=2000 

Il y a plus d’informations dans la doc.