我想在我的插件中将我的过滤器转换为handlerInterceptor,但我不太清楚如何去做。看起来我应该使用' doWithSpring'并映射一个处理程序拦截器,但我没有看到我在哪里映射网址。
为了节省一些讨论,我知道过滤器会在grails中执行此操作。我只是想在我的插件中将此代码转换为Java并使用HandlerInterceptor来减少这些调用的开销。
有人有什么想法吗?
答案 0 :(得分:0)
在Grails中,所有处理程序拦截器都注册了filterInterceptor
bean CompositeInterceptor
。要向此bean添加新的处理程序拦截器,请使用addHandler
方法。
CompositeInterceptor的源代码可以让您更好地了解如何完成此操作。在我的头顶,它可能看起来像这样:
def doWithSpring = {
filterInterceptor.addHandler(MyCustomHandlerClass)
}
就处理程序响应的URL而言,这取决于处理程序中的实现。
答案 1 :(得分:0)
其实我觉得我可能已经解决了。你必须扩展HandlerInterceptor并注册bean ...
mvc.'interceptors'() {
mvc.'mapping'('path': '/your/uri/**') {
bean('class': 'CustomInterceptor')
}
}
这里是我正在谈论的内容的链接(bind Spring HandlerInterceptor only to one controller)
试试这个并测试它......