gpt4 book ai didi

java - JSF2 - 由 EJB 或 ManagedBean 支持?

转载 作者:太空狗 更新时间:2023-10-29 22:33:37 24 4
gpt4 key购买 nike

在学习 JSF2 时,我意识到我不确定支持组件应该是什么。从设计的角度来看,EJB 和 @ManagedBeans 有什么区别?

最终还是要用JPA,业务层自然选择EJB。直接从 JSF 使用 EJB 是一种好的做法吗(如 here 所述)?

目前,我倾向于将 @ManagedBean 用于不需要访问业务层(例如 View 助手)或处理请求/ session 数据的组件。用于其他目的,例如在网格中列出一些东西,我会直接访问 EJB。

这是一个好的设计吗?为了干净的层分离,我是否应该对所有支持 beans 使用 @ManagedBeans,即使在某些情况下它们只委托(delegate)给 EJB?

最佳答案

非常有效的问题,但我想答案取决于您的项目方法的“严格性”。 JSF 支持 bean 和 EJB 之间确实存在一些冗余,因为它们都实现了一些业务逻辑。

理想使用带有convertersrenderedvalidator 等的 JSF 功能,backing bean 可能确实是干净的业务逻辑代码。但在实践中,一些与表示相关的逻辑经常在其中泄漏。

这种与表示相关的逻辑最好不在 EJB 中。这种与表示相关的逻辑可能取决于 faces 包,但不是必需的。它所做的决定了它是否与表示相关。

不过,统一的组件模型有一些优势。这是 Seam 采取的方法和 Spring .在这两种情况下,具有声明式事务等的业务组件都可以直接在 JSF 中使用(Spring 不使用 EJB 但提供了类似的模型)。然而,EJB 纯粹主义者会说您应该将两者分开。

所以对我来说,这最终是项目的品味和规模的问题。我可以想象,对于在 JSF 中使用 EJB 的小型/中型项目,效果很好。对于这种严格性至关重要的大型项目,请确保不要搞砸这些层。

关于java - JSF2 - 由 EJB 或 ManagedBean 支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2429065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com