Avalados por :
Estou muito intrigado sobre como o framework Spring realiza essa varredura, então fiz algumas depurações para descobrir.
Neste blog Como encontrar a localização exata onde o arquivo de configuração de beans é analisado no framework Spring Já encontrei a localização onde o arquivo de configuração xml é analisado pelo framework Spring, então posso definir um ponto de interrupção diretamente no código fonte encontrado.
Aqui o pacote a ser varrido é analisado a partir do arquivo xml:
E a varredura real é feita na linha 87:
Aqui todas as classes dentro do pacote especificado e seus subpacotes são extraídos como recursos, agora tenho 7 recursos como candidatos para a varredura, o que faz sentido pois tenho um total de 7 classes no pacote:
A avaliação para verificar se a classe possui uma anotação qualificada é feita neste método:
Se a classe varrida tiver pelo menos uma anotação (a anotação escrita na classe é armazenada em metsadataReader) que está em this.includeFilters, então é considerada como candidata.
Ao inspecionar o conteúdo de this.includeFilters, podemos saber que o framework Spring considera @Component e @Named como anotações qualificadas para a lógica de varredura automática de componentes.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute