如何在servlet中使用依赖注入?

时间:2012-05-11 09:59:06

标签: java servlets dependency-injection

如何将对象注入servlet?

我的意思是,我不能使用构造函数DI,因为servlet由servlets容器实例化。
我也没有看到为servlet实现基于setter的DI的好方法。

我应该使用servlet监听器吗?有没有最好的做法?

P.S。我既没有Spring也没有Guice,也没有任何其他DI框架,我对手动依赖注入感兴趣。

3 个答案:

答案 0 :(得分:17)

这在Servlet 3.0下是可行的。您注册了一个ServletContextListener,它在应用程序启动之前以ServletContext的addServlet(String, Servlet)方法以编程方式注册Servlet实例。由于您自己实例化Servlet实例,因此可以为它们提供适当的构造函数并注入依赖项。

前一段时间我创建了an example,说明了基本技术。

答案 1 :(得分:0)

您可以使用由某个IOC容器(Spring,Guice)创建/管理的服务

你可以创建一个ContextAware实现,并在需要时从Servlet中拉出bean

答案 2 :(得分:0)

您可以使用JNDI(Java命名和目录接口)和@Resource来注入它。