【问题标题】:How to intercept GET call with Spring Data Rest?如何使用 Spring Data Rest 拦截 GET 调用?
【发布时间】:2021-05-15 19:58:02
【问题描述】:

我正在使用带有@RepositoryRestResource 的spring data rest,其中所有动词都会为系统中的所有实体自动处理。

我的项目不需要控制器。

但我确实想在对实体进行 GET 调用之前执行某些操作。在不编写自定义控制器的情况下,最好的方法是什么?

我可以在 Spring Data Rest 中编写事件处理程序,例如 @HandleAfterDelete,但没有 GET 处理程序。

【问题讨论】:

  • 你试过 HandlerInterceptor 了吗?
  • 谢谢,我会试试的,有没有办法让 HandlerInterceptor 只为某个 GET 调用做点什么?

标签: spring spring-data-jpa spring-data spring-data-rest


【解决方案1】:

恐怕目前没有解决方案可以在框架本身之外提供此功能。然而,a pull request 已被讨论但尚未实施,因为关于 findBy* 方法的普遍性仍有待解决的问题。

如果您不需要那种通用的解决方案,那么建议的 HandlerInterceptor 是您的最佳选择……

public class YourInterceptor extends HandlerInterceptorAdapter {
    @Override
    public boolean preHandle(final HttpServletRequest request, final HttpServletResponse response, final Object handler) throws Exception {
        // decide on request.getMethod() what to do next
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-07
    • 2015-12-31
    • 2015-09-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多