0

我是 Web 服务和 Spring 的新手。我有一个这样的网络服务方法:

@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 对象的最佳方法是什么?

4

1 回答 1

2

我会在你的网络方法中说。Web服务应该是调用服务层的接口。它应该将传入的请求转换为服务层可以理解的内容,并将结果转换为 Web 服务可以发送的内容。

该服务通常是应用程序的可重用部分,可以在 Web 服务和 Web 应用程序(使用控制器)之间重用,也可以通过批量插入来重用。基本上所有调用服务的东西(包含业务逻辑)都是服务的接口层。

控制器提供对您通常通过服务接口定义的应用程序行为的访问。控制器解释用户输入并将其转换为由视图表示给用户的模型。Spring 以一种非常抽象的方式实现了一个控制器,这使您能够创建各种各样的控制器。参考指南

对我来说,这适用于与服务层接口的应用程序的每个部分。它基本上从/转换为服务层理解的东西。这是一个链接到一些有趣信息的博客(在更广泛的架构级别上)。

链接:

  1. 弹簧参考指南
  2. 清洁架构
于 2013-09-05T14:22:22.620 回答