springboot的run
springboot在哪里寫自己的代碼。
@SpringBootApplication public class FooApplication { public static void main(String[] args) { SpringApplication.run(FooApplication.class, args); } }
上面是springboot的入口代碼,主文件除了這個類沒別的了。
網上有很多分析,springboot啟動最后階段,會執行這個類的靜態方法run函數(就是上面代碼里的那行),run方法會掃描所有帶有@Component的實現了ApplicationRunner接口的類,并調用其run方法。這是在所有springboot所有的啟動工作完成之后。
一段例子:
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.Ordered; import org.springframework.stereotype.Component; @Component public class ApplicationRunnerImpl implements ApplicationRunner, Ordered { @Override public void run(ApplicationArguments args) throws Exception { System.out.println("ApplicationRunner方法執行"); } @Override public int getOrder() { return 1; } }

浙公網安備 33010602011771號