Veo que tenemos @org.springframework.context.annotation.ComponentScans
y @org.springframework.context.annotation.ComponentScan
.
- ¿Cómo utilizamos
@ComponentScans()
? - ¿Cómo es
@ComponentScans()
diferente de@ComponentScan({"com.org.abc", "com.org.xyz"})
La primavera puede escanear automáticamente un paquete de frijoles si está activado el análisis de los componentes.
@ComponentScan
configura los paquetes que desea explorar en busca de clases con la configuración de anotación. Podemos especificar los nombres de los paquetes base directamente con uno de los basePackages o argumentos de valor (el valor es un alias para basePackages)@Configuration @ComponentScan(basePackages = "com.baeldung.annotations") class VehicleFactoryConfig {}
También, podemos apuntar a clases en los paquetes de bases con el
basePackageClasses
argumento:@Configuration @ComponentScan(basePackageClasses = VehicleFactoryConfig.class) class VehicleFactoryConfig {}
Ambos argumentos son arreglos para que podamos proporcionar múltiples paquetes para cada uno.
Si no se especifica ningún argumento, el escaneo ocurre desde el mismo paquete en que la
@ComponentScan
clase anotada está presente.@ComponentScan aprovecha la característica de Java 8 anotaciones que se repiten, lo que significa que podemos marcar una clase con múltiples veces:
@Configuration @ComponentScan(basePackages = "com.baeldung.annotations") @ComponentScan(basePackageClasses = VehicleFactoryConfig.class) class VehicleFactoryConfig {}
Alternativamente, se puede utilizar
@ComponentScans
para especificar varias@ComponentScan
configuraciones:@Configuration @ComponentScans({ @ComponentScan(basePackages = "com.baeldung.annotations"), @ComponentScan(basePackageClasses = VehicleFactoryConfig.class) }) class VehicleFactoryConfig {}
Puede encontrado más de beans Spring Anotaciones