从 Servlet 3.0 开始,可以通过编程方式注册 Servlet 实例javax.servlet.ServletContext#addServlet
。这个类还有一个createServlet
分析一些注释并执行依赖注入的方法。我想如果我不需要注解处理,是否还需要这个方法。我想要一个带有常用构造函数的 servlet,以通过依赖项注入设置所需的依赖项。
@Inject
public MyServlet(SomeDependency sd) { // Constructor
...
}
问题:
- 是否可以“手动”构建 servlet 实例而不需要
createServlet
? (new MyServlet()
)
- 是否可以使用Java EE服务器的依赖注入机制来执行构造函数注入?怎么做?或者是否需要像 Guice 这样的单独的 DI 框架?
最近的 Java EE 6 标准现在支持 servlet 的依赖注入,相关部分称为 JSR-299 或 CDI。 JSR-299 参考实现,JBoss焊接 http://docs.jboss.org/weld/reference/latest/en-US/html/,如果您不想使用完整的 Java EE 6 应用服务器(例如 glassfish v3),也可以部署到 Tomcat 或 Jetty 等 servlet 容器中。
顺便说一下,通过嵌入式 Jetty 服务器,您可以使用其自定义 API 来添加预配置的 servlet 实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)