As per Spring Doc-
Configures component scanning directives for use with @Configuration classes. Provides support parallel with Spring XML\'s
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-
@Configuration to register bean in rootcontext or
dispatchersevletcontext.@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.