我们有一个项目,其中包含相当多的EJB 2无状态会话bean,这些bean是很久以前创建的。这些不是通过RMI从我们的客户端访问的第一行bean,而是由该代码用于执行特定功能。但是,我已经开始相信,将它们作为会话bean完全没有任何好处。
为什么这些不仅仅是具有几个静态函数且根本没有EJB陷阱的类?
答案 0 :(得分:3)
我能看到的唯一原因是用于群集目的(如果你正在进行群集)。如果正在进行集群处理以扩散负载,那么那些bean可能会在另一台机器上的另一台虚拟机上运行。
情况可能并非如此,而且转向EJB的过程只是过度工程化。我也受苦了。
即使是事务也不足以证明它是合理的,你可以拥有一个处理事务的EJB,并通过命令类型模式通过它调用不同的代码。
答案 1 :(得分:1)
似乎没有理由说他们不应该只是简单的POJO而不是无状态会话bean。我认为这是人们在以这种方式使用 EJB 1.x 之后得出的结论。
这也是为什么 Spring 等框架作为EJB的替代品而存在的原因。
我会说改变它们只是标准的POJO,但要确保你有一个安全网单元和功能测试(对于EJB来说可能有点困难)来帮助你。