2010-08-31 5 views
5

Je peux facilement trouver toutes les mentions d'annotation dans mon projet en utilisant SSR (recherche structurelle et remplacement). Par exemple, j'ai code suivant à base de printemps:Trouver des annotations dans IntelliJ IDEA

class DashboardController { 

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

Si je recherche par modèle org.springframework.web.bind.annotation.RequestMapping que je trouverai mon code. Mais que se passe-t-il si je veux trouver des méthodes annotées avec une annotation paramétrée, alors trouvez seulement la méthode avec les annotations @RequestMapping pour "/ dashboard" url?

je peux simplement rechercher par @RequestMapping("/dashboard") chaîne, mais l'annotation peut être écrit de plusieurs façons:

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

etc.

Répondre

3

Utilisez la recherche structurelle et substituons dans IntelliJ IDEA 14. Copiez le modèle existant méthodes annotées et ajouter «/tableau de bord » comme un argument à l'annotation comme si:

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

Vous pouvez également modifier la variable annotation $ et $ donner le texte/regexp « RequestMapping » Cela devrait trouver tous les formats possibles de l'annotation (sur les méthodes uniquement) .

0

Pourquoi ne pas simplement faire une recherche de texte pour @RequestMapping("/dashboard"), il est peu probable de donner que beaucoup faux positifs.

+0

Il existe plusieurs façons d'écrire cette annotation. Par exemple, '@RequestMapping (value ="/dashboard ", méthode = {RequestMethod.POST}) etc –

+1

Ensuite, utilisez une regex, quelque chose comme' @RequestMapping (. * "/ Dashboard". *) ' –

1

Pourquoi ne cherchez-vous pas ceci:

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