如何使用网关模式?

时间:2014-01-09 13:25:47

标签: java design-patterns spring-mvc

我有一个拦截器类,在postHandle方法中,我需要捕获我的应用程序审计的所有事件请求。我想在我的服务和存储库之间实现网关模式。我不知道如何实现网关层,它可以将HttpServletRequest的请求对象转换为我的域对象并将其传递给存储库层。以下是我的代码:

  @Override
  public void postHandle(HttpServletRequest request,
                         HttpServletResponse response, 
                         Object handler,
                         ModelAndView modelAndView) throws Exception {
        String requestURI = request.getRequestURI();
        auditService.save((Audit)reuest);
  }

如何将请求对象发送到服务,然后通过网关发送到存储库?

1 个答案:

答案 0 :(得分:1)

(我说的是Spring Integration的观点,但这应该适用)。

网关模式用于将数据从服务放入系统。这个“服务”可以是一个简单的java类,也可以以相同的方式绑定到连接器以从外部源输入。网关定义了使用什么“信道”以及该信道上的数据(尽管不需要明确)。

要创建网关,您将定义网关上存在的数据将如何连接与其他服务。您可以使用spring integration或某种形式的听众。或其他。这是你的选择。

定义数据进入系统的网关。这看起来像是你的Http请求处理程序。在这里,您可以将数据推送到网关,并且不关心另一端发生的事情。然后,您将创建两个端点,一个用于服务,因此数据处理正确,一个用于存储库,因此可以维护存档。 (如果你愿意,你甚至可以在以后添加另一个。)