回答
@Import 主要用于将指定的配置类注入到 Spring 容器中,它的作用类似于直接在 @Configuration
配置类中使用 @Bean
方法声明 Bean,但它提供了一种更加灵活的方式。
从简单的使用到高级的扩展,@Import
能帮我们完成:
- 导入配置类:把其他配置类加载进来,便于模块化管理。
- 导入普通组件:直接将某个类(例如第三方库的类)注册为 Bean。
- 基于逻辑条件动态导入:通过实现
ImportSelector
或ImportBeanDefinitionRegistrar
,根据需求动态注册 Bean。
详解
@Import的三种用法
注入普通类
注入普通类,这种方式非常简单,如下:
@Configuration
@Import(SkService.class)
public class SkServiceConfig {
}
public class SkService {
public void doSomething() {
System.out.println("这里是死磕 java......");
}
}
这里,SkService 会被自动注册为 Bean。测试下: