- 再次回顾了springboot启动流程,有了新的理解,进行以下补充:
- listeners.starting()等方法,第一次出现了误解,以为是启动监听器,但是我很奇怪监听器为什么要启动。再次看源码,才知道不同的方法是用来发布不同的事件,此方法就是发布ApplicationStartingEvent事件。可见看源码还是要耐心。
- 启动流程二次总结
- 自定义启动类,main方法调用:SpringApplication.run(启动类.class,args);
- 调用SpringApplication构造方法实例化SpringApplication,实例化过程中做以下几件事:
- 根据依赖判断webApplicationType,spring-web就是Servlet类型,spring-webflux就是Reactive类型
- spring.factories文件读取Application