@Stateless
EJB的quarkus对应物是什么?
实际上,我只能在典型的cdi bean中使用cdi,但是在quarkus中没有像@Stateless
这样的范围不存在的bean,或者?
@NoScope // such scope does actually not exit in cdi or quarkus
public class MyBean{
@Inject
EntityManager em;
}
答案 0 :(得分:2)
当我们在使用@Stateless 的上下文中使用@RequestScope 时,我们只会通过在每个请求上销毁和创建 bean 来模拟 @Stateless 行为。好处是我们在请求之间强制隔离;然而,权衡是我们在每个请求中都执行昂贵的 bean 创建/销毁。
如果我们关心性能并且只需要无状态行为而不在请求之间强制隔离,我们应该将我们的 bean 设计为无状态并使用 @Dependent 或 @ApplicationScoped 作用域。如果开发人员小心并无状态地编写代码,就不会有请求之间没有隔离的风险。
使用@RequestScope 作为@Stateless 对于框架中缺少的功能来说,这听起来像是一种糟糕的解决方法;因此,除非必要,否则我不想在这种情况下使用它。
答案 1 :(得分:1)
CDI @RequestScoped
表示每个请求的新实例。它不会在请求之间保持状态,因此您可以将其视为@Stateless
的替代。