Springboot启动流程
2020-08-25 10:30:38 0 举报
springboot启动流程
作者其他创作
大纲/内容
4、根据实Order数值排序
方法
1、入参SpringApplicationRunListener.class返回一个EventPublishingRunListener对象 2、创建SpringApplicationRunListeners对象
设置
持有
2、设置headless模式
3、创建获取当的实现类
List<ApplicationContextInitializer<?>> initializers
void starting()
创建SpringApplicationRunListeners对象
调用initialMulticaster的multicastEvent方法span style=\"font-size: inherit;\
1、出入一个事件对象
SpringApplicationRunListeners listeners = getRunListeners(args)
ListenerRetriever defaultRetriever
1、启动StopWatch计时器
2、从default.applicationListeners中寻找支持该事件的监听器
List<ApplicationListener<?>> listeners
1、配置sources
调用
ConfigurableEnvironment environment;
2、从META-INF/spring.factories获取指定的Type下的实现类的权限定类名
3、调用监听器的onApplicationEvent方法
void initialize(Object[] sources)
通过判断是否存在 javax.servlet.Servlet 和 ConfigurableWebApplicationContext
4、创建应用监听器
List<SpringApplicationRunListener> listeners
SpringApplication application;
4、启动应用监听器
listeners.starting()
EventPublishingRunListener对象实现 SpringApplicationRunListener
Class<?> mainApplicationClass
1、获取上下文类类加载器
一切都是这里开始:public class DemoApiApplication { private static Logger logger = LoggerFactory.getLogger(DemoApiApplication .class); public static void main(String[] args) { SpringApplication app = new SpringApplication(DemoApiApplication .class); app.run(args); logger.info(\"Demo应用启动成功!\"); }}
入参ApplicationListener.class
SpringApplication
void multicastEvent(ApplicationEvent event)
Set<Object> sources = new LinkedHashSet<Object>()
add
4、在spring容器还未成功 refreshed 之前都是使用SimpleApplicationEventMulticaster来广播事件的
ConfigurableApplicationContext run(String... args)
boolean webEnvironment
5、配置应用的主方法所在的类
3、创建应用启动监听器
SimpleApplicationEventMulticaster initialMulticaster;
3、创建初始化构造器
入参ApplicationContextInitializer.class
SpringApplicationRunListeners getRunListeners(String[] args)
将系统属性java.awt.headless设置为true
Set<ApplicationListener<?>> applicationListeners
2、配置是否为web环境
传递
0 条评论
下一页