JAX-RS 根资源由 @Path
注释定义,并且可能使用托管组件来完成实际工作,例如:
@Path("resource")
public class Resource
{
@Inject
Worker worker;
@GET
public String getDetails() {
return worker.getDetails();
}
}
现在我可以将此 JAX-RS 根资源传输到 CDI bean:
@RequestScoped
@Path("resource")
public class Resource {...}
或者 EJB:
@Stateless
@Path("resource")
public class Resource {...}
那么 - 以 POJO、CDI 或 EJB 方式执行的结果是什么?从外部看,对 URL 的请求传递了三遍相同的内容,但在幕后发生了什么以及注入(inject)的组件与每种情况有何关联?
最佳答案
这很大程度上取决于上下文。您是否需要 EJB 提供的额外功能(定义明确的事务语义、代理无状态池处理程序、集群支持等),或者您只需要依赖注入(inject)?
只要使用一个 CDI bean 就可以为您提供现成的,如果这就是您所需要的。如果您甚至不需要它,POJO 将为您提供最简单的性价比。
关于java - JAX-RS 资源作为 POJO 与 CDI 与 EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52497878/