我有一个拦截器类,在 postHandle 方法中,我需要捕获应用程序的所有事件请求以进行审核。我想在我的服务和存储库之间实现网关模式。我不知道如何实现网关层,它可以将我的 HttpServletRequest
请求对象转换为我的域对象并将其传递到存储库层。下面是我的代码:
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView) throws Exception {
String requestURI = request.getRequestURI();
auditService.save((Audit)reuest);
}
如何将请求对象发送到服务,然后通过网关发送到存储库?
最佳答案
(我是从 Spring Integration 的角度来说的,但这应该适用)。
网关模式用于将数据从服务放入系统。该“服务”可以是一个简单的 java 类,也可以以相同的方式绑定(bind)到连接器以从外部源输入。网关定义了使用什么“ channel ”以及该 channel 上的数据本质上是什么(尽管这不必是明确的)。
要创建网关,您需要定义网关上存在哪些数据以及这些数据如何与其他服务连接。您可以使用 spring integration ,或某种形式的听众。或其他。这是你的选择。
定义数据进入系统的网关。这看起来是您的 Http 请求处理程序。在这里,您可以将数据推送到网关,而不用关心另一端发生什么。然后,您将创建两个端点,一个用于您的服务,以便正确处理数据,另一个用于您的存储库,以便维护存档。 (如果您愿意,您甚至可以稍后添加另一个。)
关于java - 如何使用网关模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21021546/