我正在学习RESTful Webservice。
我正在使用Hibernate 4和Spring 3.我想知道是否需要实现REST服务,我从MyController类调用服务实现类EmployeeServiceImpl?并调用get,从客户端层放置REST的删除方法?
如果使用Spring,哪个REST项目可以使用CXF或Jersey? 为REST服务创建Controller类的最佳方法是什么?
服务实施类
@Transactional
@Service(value = "empService")
public class EmployeeServiceImpl implements EmployeeService {
@Inject
EmployeeDAO employeeDAO;
@Override
public List<Emp> findAllEmployees() {
return getEmployeeDAO().findAllEmployees();
}
DAO实施课程
@Repository("empDAO")
public class EmployeeDAOImpl extends GenericDAOImpl<Emp> implements EmployeeDAO {
@PersistenceContext
private EntityManager entityManager;
@Override
public List<Emp> findAllEmployees() {
CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(Emp.class));
return getEntityManager().createQuery(cq).getResultList();
}
答案 0 :(得分:1)
JAX-RS实现(RESTeasy,Jersey)完全是J2E,这意味着您不需要使用Spring。但你可以任何方式使用它。
这里是一个简单的服务示例,用正确的注释装饰,然后不需要任何控制器:
package com.mkyong.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
@Path("/hello")
public class HelloWorldService {
@GET
@Path("/{param}")
public Response getMsg(@PathParam("param") String msg) {
String output = "Jersey say : " + msg;
return Response.status(200).entity(output).build();
}
}
来源:http://www.vogella.com/articles/REST/article.html
事实上,这个JSR(331)的神奇之处在于你不需要控制器,它会自动映射来自
的调用/context/{defined_sub_context}/{entity}/{params}
到
/org.corp.package.app.services.class
如果类使用@Path(“{entity})和方法@Path(”/ {param}“)
进行修饰很好,不是吗?