# improt 配置 spring
# Import
import 既可以导入配置类,又可以 import 普通的 bean。
@Import({ConfigA.class, B.class})
public class MainConfig {
}
public class ConfigA {
@Bean
public A a() {
return new A();
}
}
public class B {
}
public class A {
}
public class ImportStudy {
public static void main(String[] args) {
var context = new AnnotationConfigServletWebApplicationContext();
context.register(MainConfig.class);
context.refresh();
var bean = context.getBean(A.class);
System.out.println(bean);
var beanb = context.getBean(B.class);
System.out.println(beanb);
}
}
A 和 B 都是可以被扫描的。Import 可以导入配置类。
# ImportSelector
个性化导入配置类,比如说注解添加属性的时候导入某个配置类。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(FeignClientsRegistrar.class)
public @interface EnableFeignClients {}
ImportSelector 接口由类型来实现,这些类型根据给定的选择标准(通常是一个或多个注释属性)来确定应导入哪个 @Configuration 类。ImportSelector 可以实现以下任何 Aware 接口,并且将在 selectImports(org.springframework.core.type.AnnotationMetadata) 之前调用它们各自的方法:
- EnvironmentAware
- BeanFactoryAware
- BeanClassLoaderAware
- ResourceLoaderAware
← Spring Context 数据库连接池 →