我有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。
因此,我仍然可以获得策略模式。但是从注解开始时创建一个处理程序。我不知道这是否是个好主意。但是问题是如何做到的。第二个问题是您该怎么办?
如果抽象地讲,那么逻辑是:
客户端这样发送请求:
ExternalRequest类{ 私人元素//org.w3c.dom.Element包含任何类型 }
我在methode的肥皂服务中收到此请求:
@MyHandler
我通过这种类型提取internalRequest和InternalRequest的类型。
我将内部请求重定向到特定处理程序。