Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 16064|Odpowiedź: 2

[Źródło] Nie mogę wprowadzić @Autowired do Listenera

[Skopiuj link]
Opublikowano 04.04.2019 15:23:22 | | | |
Ostatnio, korzystając ze słuchacza, napotkałem problem, że nie można wstrzyknąć sprężyny, kod wygląda następująco: to zadanie jest zawsze null, pakiet został oczywiście usunięty, ale nie da się go wstrzyknąć.

Powód jest następujący: słuchacz Listener nie może wstrzyknąć ziarna za pomocą @Resource kontenera Spring ani metody @Autowired annotacji, ponieważ w kontenerze serwera WWW,Ani Servlet, Filter, ani Listener nie są zarządzane przez kontenery SpringDlatego nie możemy bezpośrednio użyć metody adnotacji Spring w tych klasach do wstrzykiwania potrzebnych obiektów。 Cały cykl życia servleta obsługiwany jest przez pojemnik serletu. Jeśli włożysz go do pojemnika Spring, aby go utworzyć, obiekt servlet może zostać utworzony przez kontener Spring, ale kontener servlet może nie wiedzieć, że serlet istnieje, ponieważ nie znajduje się w osobnym kontenerze. Dlatego serwlet jest zarządzany przez serwer WWW, a nie przez wiosnę.

Wprowadź następujące modyfikacje:

Z kontekstu wiosny rozwiązało to problem idealnie.


Springboot @Autowired nie wprowadza problemów
https://www.itsvse.com/thread-6397-1-1.html
(Źródło: Architect_Programmer)






Poprzedni:Jak wyświetlać i ukrywać elementy za pomocą Bootstrap4
Następny:annotations@PostConstruct Java oraz szczegółowe wyjaśnienia i przykłady @PreDestroy
 Ziemianin| Opublikowano 04.04.2019 15:54:53 |
Nawet jeśli ustawisz słuchacz jednostek na @Component, JPA faktycznie używa tylko instancji klasy, a nie ziarna zarządzanego przez wiosnę. Dlatego dostajesz NullPointerException. KontoHistoryRepo zawsze będzie puste.

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

Sposób na wstrzykiwanie zależności w bezstanowych ziosłach polega na zdefiniowaniu zależności jako "statycznych", tworząc metodę settera, dzięki której Spring może wstrzyknąć zależności (przypisać je do statycznych).

Deklaruj zależności jako statyczne.



Stwórz metodę, dzięki której Spring będzie mogła go wstrzykiwać.



Zasoby:https://stackoverflow.com/questi ... -jpa-entitylistener
 Ziemianin| Opublikowano 04.04.2019 16:03:23 |
Moje rozwiązanie jest następujące:


Zasoby:Logowanie do linku jest widoczne.
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com