Baru-baru ini, ketika menggunakan pendengar, saya mengalami masalah bahwa pegas tidak dapat disuntikkan, kodenya adalah sebagai berikut, tugas ini selalu nol, paket jelas telah tersapu, tetapi tidak dapat disuntikkan.
Alasannya adalah sebagai berikut: pendengar Listener tidak dapat menyuntikkan bean menggunakan @Resource kontainer Spring atau metode anotasi @Autowired, karena, dalam wadah server web,Baik Servlet, Filter, maupun Listener tidak dikelola oleh kontainer Spring,Oleh karena itu, kita tidak dapat secara langsung menggunakan metode anotasi Spring di kelas-kelas ini untuk menyuntikkan objek yang kita butuhkan。 Di sini, seluruh siklus hidup servlet ditangani oleh wadah servlet. Jika Anda memasukkannya ke dalam kontainer Spring untuk membuatnya, objek servlet dapat dibuat oleh kontainer Spring, tetapi kontainer servlet mungkin tidak tahu bahwa servlet ada karena tidak ada dalam kontainernya sendiri. Oleh karena itu, servlet dikelola oleh server web, bukan oleh pegas.
Lakukan modifikasi berikut:
Diambil dari konteks musim semi, itu memecahkan masalah dengan sempurna.
|