如何将对象注入到 servlet?
我的意思是,我不能使用构造函数 DI,因为 servlet 是由 servlets 容器实例化的。
而且我也没有看到为 servlet 实现基于 setter 的 DI 的好方法。
我应该使用 servlet 侦听器吗?有没有最佳实践?
PS 我既没有 Spring 也没有 Guice 也没有任何其他 DI 框架,我对手动依赖注入很感兴趣。
如何将对象注入到 servlet?
我的意思是,我不能使用构造函数 DI,因为 servlet 是由 servlets 容器实例化的。
而且我也没有看到为 servlet 实现基于 setter 的 DI 的好方法。
我应该使用 servlet 侦听器吗?有没有最佳实践?
PS 我既没有 Spring 也没有 Guice 也没有任何其他 DI 框架,我对手动依赖注入很感兴趣。
这在 Servlet 3.0 下是可能的。您注册一个ServletContextListener ,它在应用程序启动之前以编程方式使用 ServletContext 的addServlet(String, Servlet)方法注册 Servlet 实例。由于您自己实例化了 Servlet 实例,因此您可以为它们提供适当的构造函数并注入依赖项。
不久前我创建了一个示例来说明基本技术。
您可以使用 JNDI(Java 命名和目录接口)并@Resource
注入它。
您可以使用由某些 IOC 容器(Spring、Guice)创建/管理的服务
您可以创建一个 ContextAware 实现并在需要时从 Servlet 中提取 bean