Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 16064|Répondre: 2

[Source] Impossible d’injecter @Autowired dans Listener

[Copié le lien]
Publié sur 04/04/2019 15:23:22 | | | |
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 SpringPar 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.


Springboot @Autowired n’injecte pas de problèmes
https://www.itsvse.com/thread-6397-1-1.html
(Source : Architect_Programmer)






Précédent:Comment montrer et cacher des éléments avec Bootstrap4
Prochain:Java annotations@PostConstruct ainsi que des explications détaillées et des exemples de @PreDestroy
 Propriétaire| Publié sur 04/04/2019 15:54:53 |
Même si vous mettez l’entity listener sur @Component, JPA utilise en réalité uniquement une instance de la classe, pas un grain géré par Spring. C’est pour ça que vous obtenez une NullPointerException. Le compteHistoriqueRepo sera toujours vide.

https://stackoverflow.com/questi ... n-using-postpersist

La astuce pour injecter des dépendances sur des grains sans état consiste à définir les dépendances comme « statiques », en créant une méthode de setter permettant à Spring d’injecter des dépendances (les assigner à des dépendances statiques).

Déclarez les dépendances comme statiques.



Créez une méthode pour que Spring puisse l’injecter.



Ressources:https://stackoverflow.com/questi ... -jpa-entitylistener
 Propriétaire| Publié sur 04/04/2019 16:03:23 |
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com