servlet 3.0 Web应用程序中的依赖注入?

时间:2013-07-31 16:50:44

标签: java servlets servlet-3.0

我正在尝试编写一个servlet 3.0 Web应用程序,只是为了学习基本的servlet处理。通常我会用春天。

现在我有一个访问DAO的servlet来查询数据库。现在,实例化DAO并使用它的最佳方法是什么?我最好的猜测是在servlet中有一个私有属性,并在创建servlet时创建一个DAO实例。

但是,servlet会被多次创建吗?

在servlet 3.0中是否有类似于spring依赖注入的东西?

2 个答案:

答案 0 :(得分:2)

EJB 3依赖注入非常简单易用。单个注释@EJB会导致注入声明的bean。将SomeDAO bean注入Servlet 3.0看起来像这样:

@WebServlet(name="Messenger", urlPatterns={"/Messenger"})
public class Messenger extends HttpServlet {    
    @EJB
    SomeDAO someDAO;
 }

注入的SomeDAO bean可以是接口或无接口视图bean。只要只有一个接口的实现,就会在没有任何仪式的情况下注入它。

答案 1 :(得分:2)

javax.servlet API是java-ee中包含的技术之一。

CDI,是java-ee

中的Context和Dependency Injection技术

因此,为了回答您的问题,您的用例可以通过仅使用CDI和Servlet来解决。

但是上面支持的大多数应用服务器(例如TomEEGlassfish webprofiles)也将支持EJB(使用cdi)和JPA。 EJB + JPA可用于实现DAO。

Arjan Tijms汇总了included and happening in the java-ee-7 world

的链接概述