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 Spring,Dlatego 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.
|