SpringBoot原理:(面试高频)
起步依赖的原理:
Spring Boot的起步依赖利用了Maven的传递性依赖管理特性
自动配置的原理:
SpringBoot只能扫描本包,以及本包层下面的子包
@ComponentScan()组件扫描 例如:
@ComponentScan({"com.findyou", "com.example"})
@Import导入
使用@Import导入的类会被Spring加载到IOC容器中, 导入的形式主要有以下几种:
导入普通类:
@Import({test01.class}) // 导入普通类 交给ioc容器管理
导入配置类:
@Import({HeanderConfig.class}) // 导入配置类交给IOC容器管理
导入 ImportSelector 接口实现类:
public class MyImportSelector implements ImportSelector {
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
return new String[] {"com.findyou.HeanderConfig"};
}
}
@EnableXXX注解, 是封装@Import注解的
并不是所有的bean对象都会加入到ioc容器里面,需要的是 @Conditional注解的控制