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!