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