我们将构建一个在客户端运行angularjs的应用程序,以及一个提供和使用JSON数据的J2EE应用程序。
使用@Stateless
注释(例如javax.ws.rs
,@path
和其他与http相关的注释)在我们的@get
EJB中直接公开我们的业务方法是不是一种坏习惯吗?我们担心如果它们充满了与“网络相关”的导入,我们的业务代码将变成“不纯的”。
或者我们只是偏执狂?
答案 0 :(得分:1)
根据JavaEE参考:http://docs.oracle.com/javaee/6/tutorial/doc/gipjg.html,无状态会话bean可以实现Web服务。所以,我认为应该可以将REST注释添加到无状态EJB中,以使该功能可用作Web服务
无国籍会话豆
无状态会话bean不会保持会话状态 客户端。当客户端调用无状态bean的方法时, bean的实例变量可能包含特定于该客户端的状态 但仅限于调用的持续时间。当方法是 完成后,不应保留特定于客户端的状态。客户端 但是,可能会更改池中实例变量的状态 无状态bean,并且这个状态被保留到下一次调用 混合无状态豆。除了在方法调用期间,所有 无状态bean的实例是等价的,允许EJB 容器将实例分配给任何客户端。也就是说,状态 无状态会话bean应该适用于所有客户端。
因为它们可以支持多个客户端,所以无状态会话bean可以 为需要大量数据的应用程序提供更好的可扩展性 客户。通常,应用程序需要较少的无状态会话 bean比有状态会话bean支持相同的数量 客户端。
无状态会话bean可以实现Web服务,但是有状态 会话bean不能。