2012-04-12 13 views
13

Usando Eclipse IDE, me gustaría obtener una lista de todas las "cosas" anotadas con una anotación de Java específica.¿Cómo encontrar el uso de anotaciones usando Eclipse IDE?

Por ejemplo, me gustaría obtener una lista de todos los métodos anotados con @Bean en el código fuente de Spring Framework o JAR.

Soy consciente de que es posible buscar el uso de anotaciones programáticamente, como se indica en this question. En su lugar, me gustaría buscar el uso de la anotación en el momento del desarrollo dentro de mi Eclipse IDE.

+0

¿Ha mirado en escribir una Eclipse Plugin? http://www.eclipse.org/articles/Article-Your%20First%20Plug-in/YourFirstPlugin.html –

Respuesta

7

Puede buscar referencias en Eclipse. Haga clic en el nombre de la anotación, luego haga clic derecho, seleccione "Referencias" y elija un alcance para su búsqueda.

+0

Gracias por esta sugerencia. Sin embargo, hay problemas con este enfoque: ... puede incluir resultados falsos positivos, p. clases que funcionan con el nombre de la anotación de forma reflexiva (... AnnotationUtils.findAnnotation (method, Bean.class)! = null;) ... Además, este enfoque se limita al código fuente en mi área de trabajo. No comprueba el uso de una anotación dentro de las bibliotecas o mi repositorio Maven. Alguna idea aqui? – Abdull

+0

Acepto que los falsos positivos son feos, pero son difíciles, si no imposibles, de evitar porque esta búsqueda se ejecuta en un nivel "semántico". Acerca de libs y/o repositorios Maven: solía creer que Eclipse los buscaría también, necesito verificar esto en mi máquina de trabajo la próxima semana;) – Rob

+0

¡Genial! Estoy esperando curiosamente por tus resultados :) – Abdull

4

Puede hacer clic con la tecla Control presionada en la anotación que abrirá la clase de definición de anotación y luego haga clic con el botón derecho y elija References ->Workspace.

EDIT: acabo de comprobar que, y es suficiente para hacer clic derecho en la anotación mencionada y la elección de References ->Workspace sin ni siquiera entrar en su definición.

+0

¡Esto funciona totalmente bien! =) – alexander

0

En STS, hay una opción de búsqueda:

STS Pointcut Matches

en el que se puede especificar, por ejemplo: @target(org.springframework.stereotype.Service) que encontrar todas las clases marcados con @Service

Cuestiones relacionadas