SpringBootApplication只是启用了自动配置,为什么能自动配置呢?
run方法也是实现了三个功能原理总结:
1.提前写好一个类,把配置提前配好。
2.一旦引了相关依赖,自动配置就生效了。
3.配置可以进行覆盖。覆盖它的属性。
源码点击去会发现返回一个run,接着跟:
在这个run里面new了一个对象,new完了以后调run。new对象的时候把当前类传进去了。 继续跟进,发现它把SpringApplication这个类传了进去。
这个类的作用是判断当前web应用的类型,isPresent方法。判断当前类是否存在。继续跟进会发现,
这个类传了一个DispatcherHandler,这是Spring5里面的新特性,叫响应式编程,来处理web请求。
就是说判断如果这个类存在,他就会认为是个响应式的项目。
源码中还有类加载器,加载了spring配置文件,META-INF/spring.factories。
原理总结:
1.提前写好一个类,把配置提前配好。
2.一旦引了相关依赖,自动配置就生效了。
3.配置可以进行覆盖。覆盖它的属性。