Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 16064|Antwoord: 2

[Bron] Kan @Autowired niet injecteren in Listener

[Link kopiëren]
Geplaatst op 04-04-2019 15:23:22 | | | |
Onlangs, bij het gebruik van de listener, kwam ik het probleem tegen dat spring niet geïnjecteerd kon worden, de code is als volgt, deze taak is altijd null, het pakket is duidelijk weggeveegd, maar het kan niet worden geïnjecteerd.

De reden hiervoor is als volgt: de Listener-luisteraar kan de boon niet injecteren met de @Resource van de Spring-container of de methode van @Autowired annotatie, omdat in de webservercontainer,Noch Servlet, Filter noch Listener worden beheerd door Spring-containersDaarom kunnen we de Spring-annotatiemethode in deze klassen niet direct gebruiken om de objecten die we nodig hebben te injecteren。 Hier wordt de volledige levenscyclus van de servlet afgehandeld door de servlet-container. Als je het in een Spring-container plaatst om het te maken, kan het servlet-object worden aangemaakt door de Spring-container, maar de servlet-container weet mogelijk niet dat de servlet bestaat omdat hij niet in een eigen container zit. Daarom wordt de servlet beheerd door de webserver, niet door Spring.

Breng de volgende aanpassingen aan:

Vanuit de context van de lente loste het het probleem perfect op.


Springboot @Autowired geen problemen kan injecteren
https://www.itsvse.com/thread-6397-1-1.html
(Bron: Architect_Programmer)






Vorig:Hoe je elementen toont en verbergt met Bootstrap4
Volgend:Java annotations@PostConstruct gedetailleerde uitleg en voorbeelden van @PreDestroy
 Huisbaas| Geplaatst op 04-04-2019 15:54:53 |
Zelfs als je de entity listener op @Component zet, gebruikt JPA eigenlijk alleen een instantie van de klasse, niet een Spring managed bean. Daarom krijg je een NullPointerException. De accountHistoryRepo zal altijd leeg zijn.

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

De hack om afhankelijkheden op stateless beans te injecteren is om afhankelijkheden als "statisch" te definiëren, waarbij een setter-methode wordt gecreëerd zodat Spring afhankelijkheden kan injecteren (ze aan statische afhankelijkheden kan toewijzen).

Verklaar afhankelijkheden als statisch.



Creëer een methode zodat Spring het kan injecteren.



Weg:https://stackoverflow.com/questi ... -jpa-entitylistener
 Huisbaas| Geplaatst op 04-04-2019 16:03:23 |
Mijn oplossing is als volgt:


Weg:De hyperlink-login is zichtbaar.
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com