2016-11-25 7 views
-3

Я намерен разработать дизайн Restful API в Java EE, но я столкнулся с различными моделями реализации сервисов Restful.RESTful design pattern в Java EE

первая модель использует @EJB в классах отдыха для извлечения данных:

@Path("/users") 
public class UserResource 
{ 
    @EJB 
    UsersFacade em; 

    @GET 
    @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) 
    @Path("{name}") 
    public User getUser(@PathParam("name") String _name) 
    { 
     UsersBean u = em.findByName(_name); 

     if (u == null) 
     { 
      throw new WebApplicationException(404); 
     } 
     return User.fromEntity(u); 
    } 

    .... 
} 

и второй один, который производится NetBeans, как это:

@Stateless 
@Path("entities.customer") 
public class CustomerFacadeREST extends AbstractFacade<Customer> { 
    @PersistenceContext(unitName = "CustomerDBPU") 
    private EntityManager em; 

    public CustomerFacadeREST() { 
     super(Customer.class); 
    } 

    @GET 
    @Path("{id}") 
    @Produces({"application/xml", "application/json"}) 
    public Customer find(@PathParam("id") Integer id) { 
     return super.find(id); 
    } 

    .... 
} 

Как вы могли заметить, различия здесь заключаются в том, что во втором методе реализации класса Rest является SLJB (безстоящий Java Bean), и он использует @PersistenceContext для получения экземпляра JPA, а также расширяет AbstractFacade.

Но в первых методах он использует только @EJB для извлечения экземпляра Bean.

какой вы предпочитаете? и почему?

+4

Это абсолютно не связано с REST, ваш вопрос касается '@ EJB' и' @ PersistenceContext'. Пожалуйста, отредактируйте свой вопрос и уменьшите его до того, что необходимо для формулирования вашего вопроса. –

+0

@ Lutz Horn, я хочу знать, что лучше практиковать для реализации API на основе отдыха. и почему? – user335870

+2

Это не имеет значения. REST - это не выбор между различными способами зависимостей проводки. Оба класса идентичны во всем, что связано с REST: –

ответ

2

Это не имеет значения. REST - это не выбор между различными способами зависимостей проводки. Оба класса идентичны во всем, что связано с REST.