Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 16064|Risposta: 2

[Fonte] Impossibile iniettare @Autowired in Listener

[Copiato link]
Pubblicato su 04/04/2019 15:23:22 | | | |
Recentemente, usando l'ascoltatore, ho riscontrato il problema che la molla non poteva essere iniettata, il codice è il seguente, questo compito è sempre nullo, il pacchetto è ovviamente stato cancellato, ma non può essere iniettato.

La ragione è la seguente: l'ascoltatore Listener non può iniettare il bean usando il @Resource del contenitore Spring o il metodo di annotazione @Autowired, perché, nel container del server web,Né Servlet, né Filter, né Listener sono gestiti dai contenitori SpringPertanto, non possiamo usare direttamente il metodo di annotazione Spring in queste classi per iniettare gli oggetti di cui abbiamo bisogno。 Qui, l'intero ciclo di vita del servlet è gestito dal contenitore del servlet. Se lo metti in un contenitore Spring per crearlo, l'oggetto servlet può essere creato dal contenitore Spring, ma il contenitore servlet potrebbe non sapere che il servlet esiste perché non si trova nel suo contenitore a sé stante. Pertanto, il servlet è gestito dal server web, non dalla molla.

Apporta le seguenti modifiche:

Preso dal contesto della primavera, risolveva perfettamente il problema.


Springboot @Autowired non inserisce problemi
https://www.itsvse.com/thread-6397-1-1.html
(Fonte: Architect_Programmer)






Precedente:Come mostrare e nascondere elementi usando Bootstrap4
Prossimo:Java annotations@PostConstruct spiegazioni dettagliate ed esempi di @PreDestroy
 Padrone di casa| Pubblicato su 04/04/2019 15:54:53 |
Anche se imposti l'entity listener su @Component, JPA in realtà usa solo un'istanza della classe, non un bean gestito da Spring. Ecco perché ottieni un NullPointerException. Il accountHistoryRepo sarà sempre vuoto.

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

Il trucco per iniettare dipendenze su bean stateless è definire le dipendenze come "statiche", creando un metodo setter in modo che Spring possa iniettare dipendenze (assegnarle a dipendenze statiche).

Dichiara le dipendenze come statiche.



Crea un metodo in modo che Spring possa iniettarla.



Risorse:https://stackoverflow.com/questi ... -jpa-entitylistener
 Padrone di casa| Pubblicato su 04/04/2019 16:03:23 |
La mia soluzione è la seguente:


Risorse:Il login del link ipertestuale è visibile.
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com