Где обычно применяются аннотации JAX-RS? - PullRequest
2 голосов
/ 14 декабря 2011

Я немного прочитал о JAX-RS, и мне интересно, где обычно размещать аннотации?Должен ли я добавить их в мои существующие EJB?Или я должен создавать новые EJB, и если да, то должен ли я использовать интерфейсы (если таковые имеются), которые я использую на «обычных» EJB?

1 Ответ

2 голосов
/ 15 декабря 2011

Как вы узнали, существует множество способов их моделирования.Я не уверен в общей наилучшей практике, но я лично предпочитаю использовать управляемые bean-компоненты CDI, которые я внедряю с EJB-бинами.

Так что это немного похоже на ваш второй вариант: создавать новые бины, нои делать их EJB тоже.

Например,

@Produces("application/xml")
@Path("xml")
@javax.enterprise.context.RequestScoped // CDI one, not JSF one
public class MyResource {

    @Context
    private SecurityContext securityContext;

    @Inject
    private MyDAO myDAO; // MyDAO = EJB Bean

    @GET
    @Path("some/path")
    public Foo getFoo() {
        return myDAO.getFooByUserName(securityContext.getUserPrincipal().getName());
    }
}

Это также зависит от того, существуют ли методы, которые используются только для JAX-RS.Приведенный выше пример не показывает этого, но я обнаружил, что он часто всплывает, и когда это происходит, отдельные бины становятся немного лучше.

...