2012-05-11 31 views
9

Bir sunucuya nasıl nesne enjekte edilir?Sunucuda bağımlılık enjeksiyonu nasıl kullanılır?

Ben servlet'ler bir servlet'ler konteyner tarafından örneği çünkü ben bir yapıcı DI kullanamazsınız demek istiyorum.
Ve ayrıca bir sunucu için setter tabanlı DI uygulamak için güzel bir yol görmüyorum.

Ben servlet dinleyici kullanmalı mıyım? En iyi uygulamalar var mı?

P.S. Ne Spring ne Guice ne de başka bir DI framework'üm yok, manuel bağımlılık enjeksiyonuna ilgi duyuyorum.

+2

Bu soruya bakın. Belki yardımcı olacaktır: http://stackoverflow.com/q/1992132/891391 – yatul

cevap

0

bazı IOC konteyner (Bahar, Guice) tarafından oluşturulan/yönetilen hizmetler tüketebilir

Bir ContextAware uygulamasını oluşturmak ve Servlet gerektiğinde ve

16

bu mümkündür olarak fasulye çekin olabilir Servlet 3.0 altında. Uygulama başlatılmadan hemen önce ServletContext'in addServlet(String, Servlet) yöntemiyle Servlet örneklerini program aracılığıyla kaydeden bir ServletContextListener kayıt olursunuz. Servlet örneklerini kendiniz oluşturduğunuzdan, onlara uygun kurucular verebilirsiniz ve bağımlılıkları enjekte edebilirsiniz.

Ben temel tekniği göstermektedir olduğu bir süre önce an example yarattı.

+1

1 I 'addServlet' – ewernli

+0

@ewernli haberi yoktu: IMO, Güneş/Oracle o hak tanıtım vermedi. –

+0

Teşekkürler dostum, çok yararlı – 7zark7

0

Sen JNDI Java İsimlendirme ve Dizin Arabirimi kullanabilir ve @Resource bunu enjekte etmek.

İlgili konular