Ресурс JAX-RS как POJO против CDI против EJB - PullRequest
0 голосов
/ 25 сентября 2018

Корневой ресурс JAX-RS определяется аннотацией @Path и может использовать управляемые компоненты для выполнения фактической работы, например:

@Path("resource")
public class Resource
{
  @Inject
  Worker worker;

  @GET
  public String getDetails() {
    return worker.getDetails();
  }
}

Теперь я могу передать этот корневой ресурс JAX-RS.либо к бину CDI:

@RequestScoped
@Path("resource")
public class Resource {...}

, либо к EJB:

@Stateless
@Path("resource")
public class Resource {...}

Итак, каковы последствия того, что вы делаете это POJO, CDI или EJB?Снаружи запрос к URL доставляет три раза одно и то же, но что происходит под капотом и как внедренные компоненты связаны с каждым случаем?

1 Ответ

0 голосов
/ 28 сентября 2018

Это в значительной степени сводится к контексту.Вам нужны дополнительные средства, которые предоставляет EJB (четко определенная семантика транзакций, прокси-серверы без пул без поддержки состояния, поддержка кластеров и т. Д.), Или вам просто нужно внедрение зависимостей?

Простое использование компонента CDI даст вамэто с полки, если это все, что вам нужно.Если вам это даже не нужно, POJO обеспечит ваш самый простой удар за доллар.

...