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

Rom*_*man 11 java servlets dependency-injection

如何将对象注入servlet?

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

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

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

Sea*_*lly 18

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

我刚刚创建了一个例子来说明基本技术.


Jig*_*shi 0

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

您可以创建一个 ContextAware 实现,并在需要时从 Servlet 中提取 bean