【发布时间】:2019-09-19 19:50:16
【问题描述】:
我正在使用 Spring Data REST 构建一个应用程序,并使用 MappedInterceptor 实现拦截器模式,正如 post 中所建议的那样。拦截器按预期工作,它拦截@RestControllers。
现在,使用preHandle(…) 方法签名中可用的参数(包括:HttpServletRequest request, HttpServletResponse response, Object handler => can be casted to org.springframework.web.method.HandlerMethod),我如何访问正在调用的 RestRepository 类或存储库方法(来自 HandlerMethod 类的 getMethod() 效果很好使用具体类,但它不适用于 Repository 接口,它结束返回一个 RestAbstractController 类,该类通过反射调用目标存储库)???
为什么我需要这个?
因为,我在做一个横切的逻辑,需要访问Repository接口来查找特定的业务注解,如果注解存在,就完成了一些逻辑(比如设置MDC特殊值) ...
谢谢...
【问题讨论】:
-
您能否提供代码示例,说明您尝试过但没有成功的方法?
-
我相信代码在这里没有帮助......正如我所说,使用来自
org.springframework.web.method.HandlerMethod的getMethod()我可以获得对具体类的引用,然后我可以从那里查找我的通过反射进行注释...这种方法仅适用于我自己实现的具体类...但是,Spring JPA Rest Repositories 由 Spring 提供的具体类调用,因此目标存储库被此类包装,我不知道如何访问它们...
标签: java spring spring-data-jpa spring-data spring-data-rest