根据官方文件:
注释类型配置
表示一个类声明了一个或多个@Bean方法,并且可以由Spring容器处理以生成bean定义...
@Configuration类可以使用@Import注释编写,与Spring XML中的工作方式不同.因为@Configuration对象在容器中作为Spring bean进行管理.
但我也可以在没有@Import的情况下使用@Configuration注释.我已经测试了下面列出的代码,它按预期工作.那么使用@Import的目的是什么?
DispatcherServletInitializer
public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { WebConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
Run Code Online (Sandbox Code Playgroud)
WebMvcConfigurerAdapter
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "package.name" })
// @Import(OptionalConfig.class)
public class WebConfig extends WebMvcConfigurerAdapter {
// ...
}
Run Code Online (Sandbox Code Playgroud)
OptionalConfig
@Configuration
public class OptionalConfig {
@Bean(name = "myClass")
public MyClass myClass() …Run Code Online (Sandbox Code Playgroud)