Red de conocimiento informático - Problemas con los teléfonos móviles - El inicio de Springboot no incluye la inyección de ciertos beans.

El inicio de Springboot no incluye la inyección de ciertos beans.

Pregunta:

Cuando estaba trabajando en un proyecto recientemente, necesitaba introducir otros frascos. Entonces necesitas escanear los frijoles en estos frascos. Entonces use la anotación: @ComponentScan

Esta anotación puede especificar directamente el nombre del paquete. Escaneará todas las clases bajo este paquete y luego decidirá si analizarlo:

@ componentes pueden (. paquetes base = { "your.pkg", "other.pkg"})

Aplicación de clase pública {

}

bean redissonConfig está definido en otros archivos jar de. Entonces mi propio proyecto también define bean redissonConfig. Provocando errores al inicio del proyecto. Utilice el siguiente método para excluir RedissonConfig.class en el jar.

@ componentes pueden(paquetes base = { " com . xx . xx . * " }, excluirFilters = @ComponentScan.Filter(tipo = FilterType.ASSIGNABLE_TYPE, clases = {RedissonConfig.class}))

p>

Anotación @ComponentScan. Los beans que se escanean o analizan solo se pueden definir en Spring, como @Component, @Service, @Controller o @Repository. Si hay algunas anotaciones personalizadas, como @Consumer, la clase modificada por esta anotación no se escaneará. En este punto tenemos que personalizar el escáner para hacer esto.

Utilice esta clase ClassPathBeanDefinitionScanner en la parte inferior de la etiqueta de escaneo de componentes en el archivo de configuración para completar el trabajo de escaneo. La anotación @ComponentScan se usa junto con la anotación @Configuration, y la capa inferior usa ComponentScanAnnotationParser para completar el análisis.