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