Maison  >  Article  >  Java  >  Pourquoi @Autowired Bean renvoie-t-il Null dans le constructeur ?

Pourquoi @Autowired Bean renvoie-t-il Null dans le constructeur ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-13 15:38:02489parcourir

Why Does @Autowired Bean Return Null in Constructor?

Initialisation du bean Autowired dans les constructeurs

Lorsque vous tentez de référencer un bean @Autowired à partir du constructeur d'un autre bean, cela peut entraîner un valeur nulle. Ce phénomène découle du timing du processus d'autowiring.

Autowiring, un mécanisme de Spring Framework, injecte des dépendances dans les beans en fonction de leurs annotations. Cependant, cette injection intervient après la construction des beans. Par conséquent, toute tentative d'accès aux beans autocâblés dans les constructeurs donnera des valeurs nulles.

Pour atténuer ce problème et initialiser les dépendances nécessaires, déplacez le code d'initialisation du constructeur vers une méthode distincte et annotez-le avec @PostConstruct. Le Spring Framework garantit que les méthodes @PostConstruct sont exécutées après la construction du bean et l'injection de dépendances.

Par exemple, dans le code fourni, vous pouvez déplacer la méthode startOOServer() en dehors du constructeur et l'annoter avec @PostConstruct. De cette façon, le bean autowired, applicationProperties, sera disponible avant l'exécution de la méthode.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn