Câblage automatique des constructeurs dans Spring Boot
Lorsque vous travaillez avec Spring Boot, l'injection de dépendances dans les constructeurs de beans à l'aide du câblage automatique peut parfois entraîner des valeurs nulles. En effet, le câblage automatique se produit après la construction du bean.
Dans l'extrait de code donné, le bean @Autowired applicationProperties est nul lorsqu'il est référencé dans le constructeur DocumentManager, mais pas lorsqu'il est référencé dans la méthode de conversion. Le problème est que le câblage automatique se produit après l'exécution du constructeur.
Solution : initialisation post-construction
Pour résoudre ce problème, utilisez le @ Annotation PostConstruct sur une méthode de la classe du bean où la dépendance doit être initialisée. Cette méthode sera appelée après la construction du bean et peut être utilisée pour exécuter la logique d'initialisation nécessaire.
Voici comment la classe DocumentManager peut être modifiée pour utiliser l'annotation @PostConstruct :
@Component public class DocumentManager implements IDocumentManager { private Log logger = LogFactory.getLog(this.getClass()); private OfficeManager officeManager = null; private ConverterService converterService = null; @Autowired private IApplicationProperties applicationProperties; // Remove initialization code from constructor public DocumentManager() { } @PostConstruct public void initialize() { startOOServer(); } ...
Dans ce code révisé, la logique d'initialisation a été déplacée vers la méthode initialize, qui est annotée avec @PostConstruct. Cela garantit que le bean applicationProperties est disponible lorsque la méthode est appelée après la construction du bean.
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!