Składnia filtru Grails, lub, jak nazwać Grails Filtr poza Grails

Grails zapewniafiltry które działają przed twoimi kontrolerami. Są zdefiniowane w klasach, które wyglądają tak:

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

Działają świetnie, ale chciałbym lepiej zrozumieć składnię, ponieważ nie wygląda to na żaden kod Groovy, który widziałem wcześniej. W szczególności linia powyżej, która zaczyna się odmyFilter wydaje się bardzo dziwne. Czy to jest definicja metody dla metody zwanejmyFilter? Jeśli tak, to co:'*' znaczy po każdym parametrze? Myślałem, że może to być domyślna wartość parametru, ale tak będzie='*'. Widziałem nazwane parametry przy użyciu dwukropków w metodziepołączenia wcześniej, ale nie mogło to być wywołanie metody, ponieważ nie zdefiniowałemmyFilter() gdziekolwiek indziej.

Myślę, że zrozumiałbym o wiele lepiej, gdyby ktoś mógł mi powiedzieć, jak wykonać kod filtrujący z normalnej klasy Groovy. Innymi słowy, jeśli mam plik MyFilters.groovy, który zawiera powyższe linie, jak mogę ukończyć ten kod Groovy, aby wypisał „Jestem filtrujący”?

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

questionAnswers(2)

yourAnswerToTheQuestion