Sintaxis del filtro de Grails o Cómo llamar a un filtro de Grails fuera de Grails

Grails proporcionafiltros que corren antes que tus controladores. Se definen en clases que se ven así:

class SecurityFilters {
   def filters = {
       myFilter(controller:'*', action:'*') { // What are those weird colons??
           print "I'm filtering!"
           // Code that does the filtering goes here
       }
   }
}

Funcionan muy bien, pero me gustaría entender mejor la sintaxis ya que no se parece a ningún código Groovy que haya visto antes. En particular, la línea de arriba que comienza conmyFilter parece muy extraño Es esta una definición de método para un método llamadomyFilter? Si es así, ¿qué hace?:'*' significa después de cada parámetro? Pensé que podría ser un valor de parámetro predeterminado, pero eso sería='*'. He visto parámetros nombrados usando dos puntos en el métodollamadas antes, pero esto no podría ser una llamada de método porque no he definidomyFilter() en cualquier otro lugar.

Creo que lo entendería mucho mejor si alguien pudiera decirme cómo ejecutar el código de filtrado de una clase Groovy normal. En otras palabras, si tengo un archivo MyFilters.groovy que contiene las líneas anteriores, ¿cómo podría terminar este código Groovy para que se imprima "Estoy filtrando"?

import MyFilters
def mf = new MyFilters()
mf.filters.somethingGoesHere // Help! How do I finish this line so it calls my filtering code?

Respuestas a la pregunta(2)

Su respuesta a la pregunta