这个在我们的面试中经常被问到,面试十次,大概命中率在百分之八十左右,springboot为我们做的自动配置,确实方便很多,它相较于spring而言,简化了很多配置,内置了Tomcat,大大提高了我们开发效率,下面一步步揭开springboot的神秘面纱,让他不在神秘。
我们开发一个Spring Boot项目都会用到如下一个启动类
@SpringBootApplication
public class Application{
public static void main(String[] args){
SpringApplication.run(Application.class,args);
}
}
@SpringBootApplication是SpringBoot的核心注解,它是一个组合注解
虽然上面有很多 个Annotation进行了原信息标注,但实际上重要的只有三个Annotation:
@SpringBootConfiguration:是@Configuration注解的变体,用来代替applicationContext.xml配置文件,所有这个配置文件里面能做到的事情都可以通过这个注解所在类来进行注册。
@EnableAutoConfiguration:开启自动配置,不用配置web.xml/spring.xml/springmvc.xml
@ComponentScan:默认扫描的是当前启动类所在包及主启动类所在包的子包下加了注解的类
面试回答的时候可以先从SpringBootApplication注解说,之后在从启动run()方法的时候来说,启动run()方法,它下面有个rufreshContext()方法刷新容器,它会在类路径下找到MET-INFO,sprign.factories,里面有很多配置类,它会根据你是否书写配置类,是否引入相关依赖,将指定的Bean注入到容器中