在Spring Boot 应用中,使用 @Configuration 注解可以声明某一个类是配置类,等价于早期的一个 bean xml 配置文件。

通常在应用启动时,可以通过指定配置类的搜索路径(包名)来指定那些 Configuration 类会被处理。在使用@SpringBootApplication 注解时,默认为当前包和子包。

当然,也可以通过在初始化 AnnotationConfigApplicationContext 或 AnnotationConfigWebApplicationContext 时指定,例如:

1
new AnnotationConfigApplicationContext(AppConfig.class);

指定配置类: AppConfig (可指定多个,用逗号分隔)

1
new AnnotationConfigApplicationContext("cn.com.hohistar.tutorial.springboot.starter");

指定扫描包路径。(可指定多个,用逗号分隔)

但有时候通过以上方法并不是最简洁的方法,特别是在开发软件(系统)框架时,这个时候就可以使用 @Import 注解,在 @Import 注解中,一次将多个不同包的配置类全部导入,功能上其实与 bean xml 中的完全一直。

例如:

1
2
3
4
5
6
@Import({
F1_Config.class,
F2_Config.class
})
public class FrameworkConfiguration {
}

以上代码中, F1_Config, F2_Config 分别是不同的配置类,其代码类似:

1
2
3
4
@Configuration
public F1_Config {
....
}
TAGS