Récemment, en utilisant l’écouteur, j’ai rencontré le problème que le ressort ne pouvait pas être injecté, le code est le suivant, cette tâche est toujours nulle, le package a évidemment été balayé, mais il ne peut pas être injecté.
La raison est la suivante : l’écouteur Listener ne peut pas injecter le grain en utilisant la @Resource du conteneur Spring ou la méthode d’annotation de @Autowired, car, dans le conteneur serveur web,Ni Servlet, ni Filter, ni Listener ne sont gérés par des conteneurs Spring,Par conséquent, nous ne pouvons pas utiliser directement la méthode d’annotation Spring dans ces classes pour injecter les objets dont nous avons besoin。 Ici, l’ensemble du cycle de vie du servlet est géré par le conteneur du servlet. Si vous le mettez dans un contenant Spring pour le créer, l’objet servlet peut être créé par le contenant Spring, mais le conteneur servlet peut ne pas savoir que le servlet existe car il n’est pas dans son propre contenant. Par conséquent, le servlet est géré par le serveur web, et non par le printemps.
Apportez les modifications suivantes :
Pris dans le contexte du printemps, cela a parfaitement résolu le problème.
|