Avalados por :

Descubriendo el escaneo automático de componentes en Spring Framework

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 15 Vistas
0
Cargando...
En el archivo de configuración xml de Spring, podemos definir un paquete para la etiqueta component-scan, que le indica al framework de Spring buscar todas las clases dentro de este paquete especificado, para buscar aquellas clases que estén anotadas con @Named o @Component.


Me intriga mucho cómo logra Spring framework realizar este escaneo, así que he realizado algunas depuraciones para descubrirlo.


En este blog Cómo encontrar la ubicación exacta donde se analiza el archivo de configuración de beans en el framework de Spring Ya he encontrado la ubicación donde el archivo de configuración xml es analizado por el framework de Spring, por lo que puedo establecer un punto de interrupción directamente en el código fuente encontrado.


Aquí el paquete a escanear se analiza desde el archivo xml:



Y el escaneo real se realiza en la línea 87:



Aquí todas las clases dentro del paquete especificado y sus subpaquetes se extraen como recurso, ahora tengo 7 recursos como candidatos para el escaneo, lo cual tiene sentido ya que tengo un total de 7 clases en el paquete:




La evaluación para verificar si la clase tiene una anotación calificada se realiza en este método:



Si la clase escaneada tiene al menos una anotación (la anotación escrita en la clase se almacena en metsadataReader) que reside en this.includeFilters, entonces se considera como candidata.



Al inspeccionar el contenido de this.includeFilters, podemos saber que el framework de Spring considera @Component y @Named como anotaciones calificadas para la lógica de escaneo automático de componentes.




<
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?