我正在尝试复制MVC设计模式。这就是我所做的,我有一个处理所有请求的servlet。在其中,是注入的ejbs。所以在这个控制器/ servlet中使用@EJB注释声明了7到15个ejbs。
我只想问一下,例如,1个用户是否调用了maincontroller / servlet。 ejbs是仅在该调用上注入的,还是每次用户调用servlet时,它们是否每次都被注入?或者在第一次创建servlet时注入ejbs?
答案 0 :(得分:2)
在创建对象时注入资源(因为您不能注入静态字段,只能注入成员变量)。
对于servlet,servlet类由servlet容器加载,然后创建一个实例。此时,注入了@EJB or @Resource
。然后容器调用init()方法
答案 1 :(得分:2)
在创建对象时完成注入,并且由于Servlet容器通常(但不是强制性的 - 在单线程模型的情况下)创建servlet的单个实例,然后在单独的线程中提供请求,因此您的案例中的EJB应该是如果您没有使用SingleThreadModel,则创建一次。