2010-08-31 37 views
5

Puedo encontrar fácilmente todas las menciones de alguna anotación en mi proyecto utilizando SSR (búsqueda estructural y reemplazo). Por ejemplo, he siguiente código basado en la primavera:Encontrar anotaciones en IntelliJ IDEA

class DashboardController { 

    @RequestMapping("/dashboard") 
    public void doDashboard() { 
    [...] 
    } 
} 

Si busco por el patrón org.springframework.web.bind.annotation.RequestMapping que voy a encontrar mi código. Pero, ¿qué sucede si quiero encontrar métodos anotados con anotaciones parametrizadas, así que busque solo el método con las anotaciones @RequestMapping para la URL "/ dashboard"?

que puede simplemente buscar por @RequestMapping("/dashboard") cadena, pero la anotación se puede escribir de varias maneras:

@RequestMapping("/dashboard") 
@RequestMapping(value = "/dashboard", method = {RequestMethod.POST}) 
@RequestMapping(headers = "content-type=application/*", value = "/dashboard") 

etc.

Respuesta

3

Uso Estructural Buscar y reemplazar en IntelliJ IDEA 14. Copiar la plantilla existente métodos anotados y añadir "/ cuadro de mandos" como un argumento para la anotación como por lo que:

class $Class$ { 
    @$Annotation$("/dashboard") 
    $MethodType$ $MethodName$($ParameterType$ $ParameterName$); 
} 

Usted también puede editar la variable $ $ anotación y darle el texto/expresión regular "RequestMapping" Esto debe encontrar todos los formatos posibles de la anotación (en métodos solamente) .

0

¿Por qué no hacer una búsqueda de texto para @RequestMapping("/dashboard"), su poco probable que dan que muchos falsos positivos.

+0

Esta anotación se puede escribir de varias maneras. Por ejemplo, '@RequestMapping (value ="/dashboard ", method = {RequestMethod.POST})' etc. –

+1

Luego use un regex, algo así como '@RequestMapping (. *"/Dashboard ". *)' –

1

¿Por qué no se busca esto:

@RequestMapping\(((.*?)value\s*=\s*)?"/dashboard"(.*?)\)