Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 16064|Răspunde: 2

[Sursă] Imposibil de injectat @Autowired în Listener

[Copiază linkul]
Postat pe 04.04.2019 15:23:22 | | | |
Recent, folosind ascultătorul, am întâmpinat problema că spring nu putea fi injectat, codul este următorul, această sarcină este întotdeauna nulă, pachetul a fost evident eliminat, dar nu poate fi injectat.

Motivul este următorul: ascultătorul Listener nu poate injecta boabea folosind @Resource containerului Spring sau metoda de @Autowired adnotare, deoarece, în containerul serverului web,Nici Servlet, nici Filter, nici Listener nu sunt gestionate de containerele SpringPrin urmare, nu putem folosi direct metoda de adnotare Spring în aceste clase pentru a injecta obiectele de care avem nevoie。 Aici, întregul ciclu de viață al servlet-ului este gestionat de containerul servlet. Dacă îl pui într-un recipient Spring pentru a-l crea, obiectul servlet poate fi creat de containerul Spring, dar containerul servlet poate să nu știe că servlet-ul există pentru că nu se află în recipientul său propriu. Prin urmare, servlet-ul este gestionat de serverul web, nu de primăvară.

Faceți următoarele modificări:

Luată din contextul primăverii, a rezolvat perfect problema.


Springboot @Autowired nu injectează probleme
https://www.itsvse.com/thread-6397-1-1.html
(Sursa: Architect_Programmer)






Precedent:Cum să afișezi și să ascunzi elemente folosind Bootstrap4
Următor:Java annotations@PostConstruct explicații detaliate și exemple de @PreDestroy
 Proprietarul| Postat pe 04.04.2019 15:54:53 |
Chiar dacă setezi entity listener-ul pe @Component, JPA folosește de fapt doar o instanță a clasei, nu un bean gestionat de Spring. De aceea primești un NullPointerException. AccountHistoryRepo va rămâne mereu gol.

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

Trucul pentru a injecta dependențe pe boabe fără stare este să definești dependențele ca fiind "statice", creând o metodă seter astfel încât Spring să poată injecta dependențe (să le atribuie dependențelor statice).

Declară dependențele ca fiind statice.



Creează o metodă astfel încât Spring să-l poată injecta.



Resurse:https://stackoverflow.com/questi ... -jpa-entitylistener
 Proprietarul| Postat pe 04.04.2019 16:03:23 |
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com