springboot @Import注解
@Enable"底层依赖于@lmport注解导入一些类,使用@lmport导入的类会被Springh载到OC容器中。而@mport提供4中用法:
Import4中用法:
-
- 导入Bean
-
- 导入配置类
-
- 导入ImportSelector的实现类。
-
- 导入ImportBeanDefinitionRegistrar实现类
@SpringBootApplication
public class SpringbootEnableApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(SpringbootEnableApplication.class, args);
/*//获取Bean
Object user = context.getBean("user");
System.out.println(user);*/
/*User user = context.getBean(User.class);
System.out.println(user);
Role role = context.getBean(Role.class);
System.out.println(role);*/
/* Object user = context.getBean("user");
System.out.println(user);*/
Map<String, User> map = context.getBeansOfType(User.class);
System.out.println(map);
}
}
@EnableAutoConfiguration中使用的是第三种方式:@Import(AutoConfigurationImportSelector.class)
## **07-SpringBoot自动配置-@EnableAutoConfiguration详解**
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G1AODqWw-1629873719370)(img/1571387384701.png)]
- @EnableAutoConfiguration 注解内部使用 @Import(AutoConfigurationImportSelector.**class**)来加载配置类。
- 配置文件位置:META-INF/spring.factories,该配置文件中定义了大量的配置类,当 SpringBoot 应用启动时,会自动加载这些配置类,初始化Bean
- 并不是所有的Bean都会被初始化,在配置类中使用Condition来加载满足条件的Bean
## **08-Sprin