我正在尝试编写一个servlet 3.0 Web应用程序,只是为了学习基本的servlet处理。通常我会用春天。
现在我有一个访问DAO的servlet来查询数据库。现在,实例化DAO并使用它的最佳方法是什么?我最好的猜测是在servlet中有一个私有属性,并在创建servlet时创建一个DAO实例。
但是,servlet会被多次创建吗?
在servlet 3.0中是否有类似于spring依赖注入的东西?
答案 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来解决。
但是上面支持的大多数应用服务器(例如TomEE,Glassfish webprofiles)也将支持EJB(使用cdi)和JPA。 EJB + JPA可用于实现DAO。
Arjan Tijms汇总了included and happening in the java-ee-7 world
的链接概述