我有一个使用EJB的Java EE应用程序,并通过无状态EJB执行大多数功能。
我要求所有用户也有一个活动会话,我想知道使用bean的最佳方式是什么。
目前,我有一个命令行客户端,除了使用有状态bean登录系统外,还直接使用无状态bean。
我想知道我是否应该让客户端通过有状态bean执行所有功能,这样就不会执行任何功能,除非存在活动会话。
这对我个人来说更有意义。
我不太确定什么设计是'正确的'或什么是更好的设计 如果我继续让客户端使用无状态bean,那么我将不得不让那些无状态bean检查客户端是否有活动会话。
答案 0 :(得分:0)
即使您只调用无状态bean,也会存在会话。是否需要在方法调用之间保持状态,是否调用无状态bean或有状态bean的选择应该是唯一的。尝试注入SessionContext
并注意会有一个校长,即使它是匿名的。
答案 1 :(得分:0)
如果您的需求是经过身份验证的用户,则无状态会话bean就可以了:
SessionContext.getCallerPrincipal()
(用于记录目的等)@RolesAllowed
注释)所以我没有理由切换到有状态会话bean。它可能不相关,但有状态会话bean消耗服务器端的资源,因此应该有令人信服的理由这样做。
相关问题When to use Stateful session bean over Stateless session bean?到目前为止尚未收到任何答案,在这种情况下我认为无答案也答案。