Spring 从过滤器获取方法

Spring 从过滤器获取方法,spring,grails,groovy,Spring,Grails,Groovy,我正在使用Grails2.4.4,并设置了一个过滤器来过滤某些控制器上的请求。是否有方法获取请求所针对的操作/方法?我有一个关于方法的注释,我想过滤请求以检查请求所针对的方法是否有注释,我需要执行一些额外的步骤 class MyTestFilters { def filters = { testFilter(controller:'myControler', action:'*') { before = { Gra

我正在使用Grails2.4.4,并设置了一个过滤器来过滤某些控制器上的请求。是否有方法获取请求所针对的操作/方法?我有一个关于方法的注释,我想过滤请求以检查请求所针对的方法是否有注释,我需要执行一些额外的步骤

class MyTestFilters {

    def filters = {
        testFilter(controller:'myControler', action:'*') {
            before = {
                GrailsClass artefact = grailsApplication.getArtefactByLogicalPropertyName('Controller', controllerName)
                def controller = applicationContext.getBean(artefact.clazz.name)

                Annotation annotation
                try{
                    annotation = controller.getClass().getDeclaredMethod(actionName, *SomeParameter*).getAnnotation(MyAnnotation)
                } catch(Exception e){
                    println e.getMessage()
                }
                if(annotation != null){
                    // Do some extra steps
                }
            }
        }
    }
}

这里的问题是,我必须为该方法寻找一个特定的签名。我真的不在乎参数。我只想知道操作所针对的方法是否有my
MyAnnotation
annotation。

找到了一种方法,通过迭代控制器上的所有方法来实现

Method[] methods = controller.class.getMethods().each { method ->
    if (method.name == actionName) {
        annotation = method.getAnnotation(MyAnnotation)
    }
}