我有一个Spring handlerinterceptor拦截我的应用程序中的前端URL(/ app / *).我想确定要在handlerinterceptor中调用Handler中的哪个动作方法.有没有办法查看,我是否需要向拦截器注入一些可以根据请求的路径查找的内容?
拦截器是这样的:
public class PageCacheInterceptor implements handlerinterceptor {...}
它映射如下:
背景(因为我知道你会问!).我正在为我的应用添加简单的页面缓存,并希望在控制器中的每个合适的方法上使用@Cacheable之类的注释.然后,拦截器可以根据创建响应的 *** 作确定是否缓存响应.
例如:
@RequestMapPing(value = "",method = RequestMethod.GET)@Cacheable(events={Events.NEW_ORDER,Events.NEW_STAT})public String home(Model model) {...}
事件是导致缓存失效的事件.例如,/ Widget / List动作会使其缓存的响应被保存的新窗口小部件无效.
编辑:我已经升级到最新的Spring 3.1 M2,因为this blog post暗示了我需要的功能,但是不清楚是否需要注入这些新类或对它们进行子类化.有没有人用它们来拦截拦截器中的HandlerMethod?最佳答案好的,所以解决方案实际上非常简单:
1)升级到Spring 3.1
2)RTFM(正确)
For example a handlerinterceptor can cast the handler from Object to HandlerMethod and get access to the target controller method,its annotations,etc
3)在Interceptor中将处理程序对象强制转换为HandlerMethod.
然后你可以做这样的事情:
HandlerMethod method = (HandlerMethod) handler; Cacheable methodAnnotation = method.getmethodAnnotation(Cacheable.class); if (methodAnnotation != null) { System.out.println("cacheable request"); }
总结 以上是内存溢出为你收集整理的java – 如何从Spring HandlerInterceptor中查找Handler上调用的方法?全部内容,希望文章能够帮你解决java – 如何从Spring HandlerInterceptor中查找Handler上调用的方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)