Comment accéder à une valeur définie dans le fichier application.properties dans Spring Boot

Je veux accéder aux valeurs fournies dans application.properties , par exemple:

 logging.level.org.springframework.web: DEBUG logging.level.org.hibernate: ERROR logging.file=${HOME}/application.log userBucket.path=${HOME}/bucket 

Je veux accéder à userBucket.path dans mon programme principal dans une application Spring Boot.

Vous pouvez utiliser l’annotation @Value et accéder à la propriété dans n’importe quel bean Spring que vous utilisez.

 @Value("${userBucket.path}") private Ssortingng userBucketPath; 

La section Configuration externalisée des documents Spring Boot explique tous les détails dont vous pourriez avoir besoin.

Une autre façon consiste à injecter de l’environnement dans votre haricot.

 @Autowired private Environment env; .... public void method() { ..... Ssortingng path = env.getProperty("userBucket.path"); ..... } 

@ConfigurationProperties peut être utilisé pour mapper des valeurs de .yml ( .yml également sockets en charge) vers un POJO.

Considérons le fichier exemple suivant.

.Propriétés

 cust.data.employee.name=Sachin cust.data.employee.dept=Cricket 

Employee.java

 import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; @ConfigurationProperties(prefix = "cust.data.employee") @Configuration("employeeProperties") public class Employee { private Ssortingng name; private Ssortingng dept; //Getters and Setters go here } 

Maintenant, la valeur des propriétés peut être accédée par autowiring employeeProperties comme suit.

 @Autowired private Employee employeeProperties; public void method() { Ssortingng employeeName = employeeProperties.getName(); Ssortingng employeeDept = employeeProperties.getDept(); } 

Vous pouvez utiliser @Value pour charger des variables à partir de application.properties si vous utilisez cette valeur à un seul endroit, mais si vous avez besoin d’un moyen plus centralisé pour charger ces variables, @ConfigurationProperties est une meilleure approche.

De plus, vous pouvez charger des variables et les lancer automatiquement si vous avez besoin de différents types de données pour effectuer vos validations et votre logique métier.

 application.properties custom-app.enable-mocks = false @Value("${custom-app.enable-mocks}") private boolean enableMocks;