Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jsf bean和ejbbean之间的区别_Java_Jsf_Jakarta Ee_Ejb - Fatal编程技术网

Java jsf bean和ejbbean之间的区别

Java jsf bean和ejbbean之间的区别,java,jsf,jakarta-ee,ejb,Java,Jsf,Jakarta Ee,Ejb,我需要一些澄清。我知道如何使用JSF及其相应的会话bean,但我对EJB感到困惑。EJB引入的bean和JSF使用的会话bean之间有什么区别(对于EJB,我知道无状态/完整会话bean和实体bean、实体管理器等)。我不知道什么时候使用EJB,什么时候使用JSFbean。除了实体bean之外,ejb有状态/无状态会话bean似乎与jsf会话bean类似。我读过关于将ejb注入jsf的内容,但为什么不将ejb与JSFbean结合使用呢?我希望你能理解我的困惑。多谢各位 JavaEE中不同类型的托

我需要一些澄清。我知道如何使用JSF及其相应的会话bean,但我对EJB感到困惑。EJB引入的bean和JSF使用的会话bean之间有什么区别(对于EJB,我知道无状态/完整会话bean和实体bean、实体管理器等)。我不知道什么时候使用EJB,什么时候使用JSFbean。除了实体bean之外,ejb有状态/无状态会话bean似乎与jsf会话bean类似。我读过关于将ejb注入jsf的内容,但为什么不将ejb与JSFbean结合使用呢?我希望你能理解我的困惑。多谢各位

JavaEE中不同类型的托管bean之间确实存在一些混淆。为了增加混乱,JavaEE6引入了第三种托管bean:CDIBean

在这个回答中,我试图解释一下不同点和相似点:

简单地说,JSF托管bean主要不提供事务支持,这是您在处理业务逻辑尤其是JPA时经常需要的


还要注意的是,会话范围内的托管bean中的术语
session
与无状态和有状态会话bean中的术语所指的会话完全不同。

首先,我们需要了解JSFEJBbean之间的区别

  • jsfbean是用于读取JSF组件值的
    POJO类。JSF中有两种类型的bean:

    • 托管bean是关于如何创建和初始化java bean的。正如您所知,JSF使用惰性初始化模型。这意味着特定作用域中的bean不是在作用域启动时创建和初始化的,而是按需创建和初始化的,即第一次需要bean时

    • 支持bean是关于特定托管bean所扮演的角色。这是一个角色,是位于页面上的组件的服务器端表示。通常,支持bean有一个请求范围,但它不是一个限制

  • ejbbean是一个服务器端组件,它封装了应用程序的业务逻辑。业务逻辑是实现应用程序目的的代码

  • 主要有三种类型的会话bean:

    1.Statefull会话bean

    2.无状态会话bean


    3.Singletonsessionbean(ejb3.1)

    在解释CDI和ejb差异的网站上还有另一个很好的答案。当你最终掌握全局时,这会有很大帮助