【发布时间】:2012-08-17 04:27:04
【问题描述】:
我正在开发一个尝试结合以下技术的 Java webapp:
- Java EE 6
- CDI
- JSF 2
- EJB 3.1
- Spring 安全性
我为我的 JSF 页面提供基于 CDI 的支持 bean(@ViewScoped、@Named)。
我使用@Stateless EJB bean 来完成实际工作。
我只需要很少的会话信息,例如 jSessionCookie(由容器管理)、内部用户名和一些其他内部 ID。现在,我想知道将这个会话信息放在哪里,以便我可以在 JSF 的支持 bean 中访问它,同时也将它提供给无状态 EJB?我应该使用@Stateful EJB 会话bean 还是应该使用@SessionScoped 和@Named 创建基于CDI 的POJO?
有什么最佳做法吗?
【问题讨论】:
-
不是权威答案,但就我而言,我主要将其保存在 SessionScoped JSF 支持 bean 中。 EJB 几乎不使用这些信息,当他们使用它时,它更加灵活(vg,在一种情况下,搜索条件之一是用户;一些用户只能看到它的项目 - 他们的 id 作为过滤器的一部分传递 - 并且其他人可以看到其他用户的项目-没有 id 作为过滤器的一部分传递-)
标签: java jakarta-ee ejb java-ee-6 ejb-3.1