【发布时间】:2012-08-31 19:24:28
【问题描述】:
关于会话范围和请求范围,您认为实现 JSF 托管 bean 的最佳方式是什么? 就我而言,我有一个带有 EJB 模块和 Web 模块的 EAR 应用程序。 EJB 模块提供无状态会话 bean。 现在,在 Web 模块中,我在 sessionScope 中使用了 ManagedBean。该 bean 注入了一些无状态会话 ejb 并保存了一些包含业务数据的值对象,这些数据可以在不同的页面中使用。
@Named("workflowController")
@SessionScoped
public class WorkflowController {
private List<ItemCollection> someList;
private ItemCollection someBusinessData;
/* Services */
@EJB
private MyService myService;
bean 为前端提供了很多操作方法,并利用了无状态会话 bean。 这是一般的好习惯吗?或者我应该更改我的控制器以请求范围? 我见过前端控制器仅在 RequestScoped 中使用并将所有业务数据对象注入为 managedProperties 的项目,这些对象在 SessionScope 中作为 ManagedBeans 实现。
在我的示例中,我在 SessionScope 中只有一个控制器持有所有业务值并提供在无状态 ejb 中实现的业务方法。 在另一种情况下,RequestScopde 中使用了一个控制器,并且有许多 BusinessValue 对象在 SessionScope 中实现为 MangedBeans,这些对象被注入到控制器 bean 中。
我的问题是:一般来说,将 Session EJB 注入到 SessionScope Managed bean 中是不好的做法吗?
【问题讨论】:
-
有些人似乎在没有提供解释的情况下快速使用减号/关闭手...一个有效的问题 IMO
标签: jsf ejb managed-bean