Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在web方法、服务层或DAO层中创建服务响应?_Java_Spring_Web Services_Dao_Service Layer - Fatal编程技术网

Java 在web方法、服务层或DAO层中创建服务响应?

Java 在web方法、服务层或DAO层中创建服务响应?,java,spring,web-services,dao,service-layer,Java,Spring,Web Services,Dao,Service Layer,我不熟悉web服务和Spring。我有这样一个web服务方法: @WebMethod(operationName = "docSearch") public ServiceResponse docSearch(@WebParam(name = "docNum") String docNum) { //TODO lots of TODOs here: docService = getDocService(); ServiceResponse

我不熟悉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;
        }

        }
publicserviceresponse docSearchDAO(serviceRequestserviceRequest,字符串docNum){
Session Session=sessionFactory.getCurrentSession();
List temp=会话.createCriteria(文档类)
.add(Restrictions.eq(“id”,docNum))
.list();
如果(temp!=null&&temp.size()>0){
serviceResponse.setDescription(“服务响应已成功实现”);
返回服务响应;
}否则{
serviceResponse.setDescription(“服务响应未成功实现”);
返回服务响应;
}
}

我想知道在web方法、服务层或DAO层中填充此ServiceResponse对象的最佳方式是什么?

我想在您的web方法中这样说。web服务应该是调用服务层的接口。它应该将传入的请求转换为服务层理解的内容,并将结果转换为web服务可以发送的内容

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

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

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

链接:


  • 非常感谢您的清晰解释和链接。我一定会看看你的推荐!