之前在排查一個(gè)線上問(wèn)題時(shí),不得不仔細(xì)跑了很多遍Spring Boot的代碼,于是整理一下,我用的是1.4.3.RELEASE。
首先,普通的入口,這沒(méi)什么好說(shuō)的,我就隨便貼貼代碼了:
SpringApplication.run(Application., args); -->
public static ConfigurableApplicationContext run(Object source, String... args) {
return run(new Object[] { source }, args);
}
public static ConfigurableApplicationContext run(Object[] sources, String[] args) {
return new SpringApplication(sources).run(args);
}
也就是一個(gè)靜態(tài)方法,調(diào)用了構(gòu)造函數(shù)創(chuàng)建實(shí)例,構(gòu)造的參數(shù)是Object數(shù)組,這里new這個(gè)數(shù)組的時(shí)候傳入了一個(gè)元素就是啟動(dòng)類的類對(duì)象實(shí)例(一般就是“new Object[] { Application.class” }),構(gòu)造函數(shù)里調(diào)用了一個(gè)initialize方法。