将一个外部请求分为多个内部请求,然后重定向到特定的处理程序

时间:2018-09-25 11:06:41

标签: java spring spring-boot design-patterns model-view-controller

我有2种方法提供肥皂服务:

.text{ text-align: left; } .logo{ width: 50px; height: 20px; } .footer{ text-align: center; } .col { border: solid 1px rgb(219, 217, 217); border-bottom-style: solid 1px rgb(219, 217, 217); } .col:last-child .col { border-right: solid 1px rgb(219, 217, 217); border: solid 1px rgb(219, 217, 217); } .row:last-child .col { border-bottom: solid 1px rgb(219, 217, 217); border: solid 1px rgb(219, 217, 217); } p { margin-bottom: 8em; } SendRequestReques

在每种方法中,我都会收到带有内部请求(8种内部请求)的包装请求。可能看起来像:

GetRequestResponse

我使用策略模式:

public SendRequestResponse sendRequest(SendRequestRequest request){

    if(request.getInternalrequestType().equals("RequestFirst"))
      RequestFirst requestFirst = marshaller.marsla(request.getInteRnalrequest());
      //send this reuest to concrete handler
    } else if(request.getInternalRequestType().equals("RequestSecond"))
      RequestSecond requestSecond= marshaller.marsla(request.getInternalrequest());
      //send this reuest to concrete handler
    } else if(request.getInternalrequestType().equals("RequestLast"))
      RequestLast requestLast= marshaller.marsla(request.getInternalRequest());
      //send this reuest to concrete handler
    }
   ...

并在每个处理程序中实施marshalind以创建类和实现逻辑。

但是现在我想将其更改为注释。我想为eacj内部请求创建处理程序:

InternalRequestHandler handler = internalrequestsResolver.getInternalRequestHandler(request.getInternalrequestType())
handler.process(request);

当Spring Boot应用程序启动时,我想使用@MyHandler(type = MyType.TYPE1) @Component public class MyFirstController { ... } 注释查找所有bean,并使用此bean创建esolver / factory / etc。 因此,我仍然可以获得策略模式。但是从注解开始时创建一个处理程序。我不知道这是否是个好主意。但是问题是如何做到的。第二个问题是您该怎么办?

如果抽象地讲,那么逻辑是:

  1. 客户端这样发送请求:

    ExternalRequest类{   私人元素//org.w3c.dom.Element包含任何类型 }

  2. 我在methode的肥皂服务中收到此请求:

@MyHandler

  1. 我通过这种类型提取internalRequest和InternalRequest的类型。

  2. 我将内部请求重定向到特定处理程序。

0 个答案:

没有答案