Statele ejb 旨在实现幂等并且不记忆以前的用户交互。对我来说,这听起来像是一个静态方法。
所以而不是有
public void save(Entity e) { em.persist(e); }
Run Code Online (Sandbox Code Playgroud)
安全吗
public static void save(Entity e) { em.persist(e); }
Run Code Online (Sandbox Code Playgroud)
在 EJB 内?
不,因为静态方法不参与容器管理的事务、AOP、安全性等。顺便说一句,您的第二个示例将无法编译,em是由应用程序服务器注入的,并且它不能是静态的(?)
此外,没有这样的要求:无状态 EJB 应该是幂等的并且没有状态(尽管名称如此)。更不用说一旦开始使用static方法,您就根本不需要 EJB...