【发布时间】:2017-06-01 06:23:39
【问题描述】:
我试图避免通过JAX-RS 和RESTeasy 处理客户请求中的样板代码。我有几个类,例如
class User{
private String name;
private String username;
private String address;
private long id;
//getters and setters
}
class Company{
private String name;
private String address;
private String location;
//getters and setters
}
我想要create()、update()、delete() 和 getAll() 回复。例如,对于用户,我将拥有以下具有创建方法和后续更新、删除和 getAll 的类:
@Path ("/user")
public class UserApi {
@PersistenceUnit
private EntityManagerFactory emf;
@POST
@Path("/create")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String Create(@Form User user){
EntityManager em = emf.createEntityManager();
try{
em.getTransaction().begin();
em.merge(user);
em.getTransaction().commit();
}
catch (Exception e){
e.printStackTrace();
em.getTransaction().rollback();
return "{\"success\":false, \"msg\":\"Error occured, please try later\"}";
}
return "{\"success\":true, \"msg\": \"Saved successfully\"}";
}
我必须为我拥有的每个课程重复相同的代码。有人评论过使用工厂类来避免这种情况,可能使用泛型或接口。我很难弄清楚。请提出一个好的设计来解决这个问题。
【问题讨论】:
标签: java jax-rs factory resteasy