Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 16064|Antwort: 2

[Quelle] Nicht möglich @Autowired in Listener einzufügen

[Link kopieren]
Veröffentlicht am 04.04.2019 15:23:22 | | | |
Kürzlich bin ich beim Einsatz des Listeners auf das Problem gestoßen, dass Spring nicht injiziert werden konnte, der Code ist wie folgt: Diese Aufgabe ist immer null, das Paket wurde offensichtlich weggefegt, aber es kann nicht injiziert werden.

Der Grund ist folgender: Der Listener-Hörer kann die Bohne nicht mit dem @Resource des Spring-Containers oder der Methode @Autowired Annotation injizieren, weil im Webserver-Container,Weder Servlet, Filter noch Listener werden von Spring-Containern verwaltetDaher können wir die Spring-Annotationsmethode in diesen Klassen nicht direkt verwenden, um die benötigten Objekte einzuspeisen。 Hier wird der gesamte Lebenszyklus des Servlets vom Servlet-Container abgedeckt. Wenn du es in einen Spring-Container legst, um es zu erstellen, kann das Servlet-Objekt vom Spring-Container erstellt werden, aber der Servlet-Container weiß möglicherweise nicht, dass der Servlet existiert, weil er sich nicht in einem eigenen Container befindet. Daher wird das Servlet vom Webserver verwaltet, nicht vom Frühling.

Nehmen Sie folgende Änderungen vor:

Aus dem Kontext des Frühlings betrachtet, löste es das Problem perfekt.


Springboot @Autowired kann keine Probleme verursachen
https://www.itsvse.com/thread-6397-1-1.html
(Quelle: Architect_Programmer)






Vorhergehend:Wie man Elemente mit Bootstrap4 zeigt und versteckt
Nächster:Java annotations@PostConstruct sowie detaillierte Erklärungen und Beispiele für @PreDestroy
 Vermieter| Veröffentlicht am 04.04.2019 15:54:53 |
Selbst wenn man den Entity Listener auf @Component setzt, verwendet JPA tatsächlich nur eine Instanz der Klasse, nicht eine Spring-verwaltete Bohne. Deshalb bekommt man eine NullPointerException. Das accountHistoryRepo wird immer leer sein.

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

Der Trick, um Abhängigkeiten auf stateless Beans einzuschleusen, besteht darin, Abhängigkeiten als "statisch" zu definieren und eine Setter-Methode zu schaffen, sodass Spring Abhängigkeiten injizieren kann (sie statischen Abhängigkeiten zuweisen).

Deklariere Abhängigkeiten als statisch.



Erstelle eine Methode, damit Spring sie injizieren kann.



Betriebsmittel:https://stackoverflow.com/questi ... -jpa-entitylistener
 Vermieter| Veröffentlicht am 04.04.2019 16:03:23 |
Meine Lösung ist wie folgt:


Betriebsmittel:Der Hyperlink-Login ist sichtbar.
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com