我是Web服务和Spring的新手。我有一个像这样的Web服务方法:
@WebMethod(operationName = "docSearch")
public ServiceResponse docSearch(@WebParam(name = "docNum") String docNum) {
//TODO lots of TODOs here:
docService = getDocService();
ServiceResponse serviceResponse = docService.docSearchService(docNum);
return serviceResponse;
}
使用此服务:
@Transactional
public ServiceResponse docSearchService(ServiceRequest serviceRequest, String docNum) {
//TODO lots of TODOs here:
ServiceResponse serviceResponse = new ServiceResponse();
serviceResponse = docDao.docSearchDAO(serviceRequest, docNum);
return serviceResponse;
}
和相应的DAO是:
public ServiceResponse docSearchDAO(ServiceRequest serviceRequest, String docNum) {
Session session = sessionFactory.getCurrentSession();
List<doc> temp = session.createCriteria(Doc.class)
.add(Restrictions.eq("id", docNum))
.list();
if (temp != null && temp.size() > 0) {
serviceResponse.setDescription("Service response successfully implemented);
return serviceResponse;
} else {
serviceResponse.setDescription("Service response was not successfully implemented);
return serviceResponse;
}
}
我想知道在Web方法,服务层或DAO层中填写此ServiceResponse对象的最佳方法是什么?
答案 0 :(得分:2)
我会在你的网络方法中说。 Web服务应该是调用服务层的接口。它应该将传入的请求转换为服务层理解的内容,并将结果转换为Web服务可以发送的内容。
该服务通常是应用程序的可重用部分,可以在Web服务和Web应用程序(带控制器)之间重复使用,也可以通过批量插入重用。基本上所有调用服务的东西(包含业务逻辑)都是服务的接口层。
控制器提供对通常通过服务接口定义的应用程序行为的访问。控制器解释用户输入并将其转换为由视图表示给用户的模型。 Spring以非常抽象的方式实现控制器,使您可以创建各种控制器。 Reference Guide
对我而言,这适用于与服务层接口的应用程序的每个部分。它基本上从/向服务层理解的东西转换。这里是a blog链接到一些有趣的信息(在更广泛的架构层面)。
链接: