@ComponentScan with multiple configuration class : Annotation Based Configuration
For your Question 1 -
yes, you can register a bean using @ComponentScan
in any of the configuration bean which is registered in spring container.you can register a bean into container by any of the following way-
- Use
@Configuration
to register bean inrootcontext
ordispatchersevletcontext
. - Import a class in any
@Configuration
bean (which is already registered in container).
Let say- you have MvcConfig
class in which you are scanning component-
@ComponentScan(basePackages = {"xxxx","yyyy","zzzz"})
@Configuration
public class MvcConfig {
....
}
To register MvcConfig
in container you must do-
Either
new AnnotationConfigWebApplicationContext().register(MvcConfig.class);
Or
new AnnotationConfigWebApplicationContext().register(AnotherConfig.class);
@Configuration
@Import({MvcConfig.class})
public class AnotherConfig {
....
}
For your Question 2 -
Here spring is not only registering MyConfiguration.class
but also all the component classes those are present in the package in which MyConfiguration
defined.