我正在制作一个基于Java EE的产品,我正在使用GlassFish 3和EJB 3.1.
我的应用程序有会话bean,调度程序和使用Web服务.我最近了解了Apache TomEE,它支持上下文和依赖注入(CDI).GlassFish容器也支持CDI.
我可以替换会话bean,我不需要任何CDI也没有提供的功能吗?如果那样的话,我能得到什么好处?
我觉得Java EE 6规范有点乱.有几组注释.
我们有javax.ejb类似于@Stateful和@Stateless创建EJB的注释.
还有一个@javax.annotation.ManagedBean用于创建托管bean.
javax.enterprise.context喜欢@SessionScoped和注释中有注释@RequestScoped.
更重要的是也有@ManagedBean和@SessionScoped/ @RequestScoped在注释javax.faces.bean包.
为了使事件更复杂,有一个javax.inject带@Named注释的包.
有人可以描述一下他们之间的关系吗?
我在哪里可以使用@EJB,@Inject或@ManagedPropery注入其他豆类?
我需要一些澄清.我知道如何使用JSF及其相应的会话bean,但我对EJB感到困惑.使用EJB引入的bean与JSF使用的会话bean之间有什么区别(对于ejb我知道无状态/完整会话bean和实体bean,实体管理器等).我不知道的是何时使用EJB以及何时使用jsf bean.除了实体bean之外,ejb有状态/少会话bean看起来都类似于jsf会话bean.我已经阅读了关于注入ejb到jsf的内容,但为什么不将ejb与jsf bean结合使用呢?我希望你能理解我的困惑.谢谢.
看完之后,
我仍然对以下事情感到困惑,如果我错了,请纠正我.
非常感谢.:)
cdi ×3
java ×3
java-ee ×3
ejb ×2
apache-tomee ×1
ejb-3.0 ×1
glassfish-3 ×1
java-ee-6 ×1
jsf ×1