Son zamanlarda, dinleyiciyi kullanırken yay enjekte edilememesi sorunuyla karşılaştım, kod şöyle, bu görev her zaman null, paket açıkça süpürülmüş ama enjekte edilemiyor.
Neden şöyledir: Dinleyici dinleyici, Spring konteynerinin @Resource veya @Autowired açıklama yöntemiyle çekirdek enjekte edemez, çünkü web sunucusu konteynerinde,Ne Servlet, ne Filter ne de Listener Spring konteynerleri tarafından yönetilmez,Bu nedenle, bu sınıflarda Spring annotasyon yöntemini doğrudan kullanarak ihtiyacımız olan nesneleri enjekte edemeyiz。 Burada, servletin tüm yaşam döngüsü servlet kapı tarafından yönetilir. Eğer onu bir Spring konteynerine koyarsanız, servlet nesnesi Spring konteyneri tarafından oluşturulabilir, ancak servlet konteyneri servletin var olduğunu bilmiyor çünkü kendi konteynerinde değildir. Bu nedenle, servlet web sunucusu tarafından yönetilir, bahar tarafından değil.
Aşağıdaki değişiklikleri yapın:
İlkbahar bağlamından alındığında, sorunu mükemmel şekilde çözdü.
|