2 votes

Les valeurs de propriété dans le fichier yml ne se chargent pas dans une classe dans le projet springboot

Veuillez trouver ci-dessous le code pour application.yml

decrypt: /Users/Blahblah/Bleh

La propriété ci-dessus que nous essayons de lire dans une classe, veuillez trouver le code pour PropertyLoader.java

@Configuration
@Component
public class PropertyLoader implements InitializingBean{
    @Value("${decrypt}")
    private String decryptPath;
    <--->
}

la valeur decryptPath est toujours nulle. Quelqu'un peut-il me dire ce qui ne va pas avec le code?

0voto

gokhanbirincii Points 391

Tout d'abord, application.yml devrait être sous src/main/resources/application.yml.

Si vous souhaitez utiliser ces variables dans le constructeur, vous ne pouvez pas. En effet, Spring injecte les variables annotées par @Value après la construction. Mais si vous souhaitez le faire dans le constructeur, vous pouvez le faire de la manière suivante :

public class PropertyLoader implements InitializingBean{

    private String decryptPath;

    public PropertyLoader(@Value("${decrypt}") decrypPath) {
     this.decryptPath = decryptPath;

     }
    }

0voto

Kalyan Chavali Points 43

Il s'avère que puisque cette classe implémente InitializingBean, l'objet des propriétés ne sera pas initialisé tant que cette classe n'aura pas terminé son exécution. Le @Value retournera toujours null.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X