從java EE5規(guī)范開始,Servlet增加了兩個(gè)影響Servlet生命周期的注解(Annotation):@PostConstruct和@PReConstruct。
被@PostConstruct修飾的方法會(huì)在服務(wù)器加載Servlet的時(shí)候運(yùn)行,并且只會(huì)被服務(wù)器調(diào)用一次,類似于Serclet的inti()方法。被@PostConstruct修飾的方法會(huì)在構(gòu)造函數(shù)之后,init()方法之前運(yùn)行。
被@PreConstruct修飾的方法會(huì)在服務(wù)器卸載Servlet的時(shí)候運(yùn)行,并且只會(huì)被服務(wù)器調(diào)用一次,類似于Servlet的destroy()方法。被@PreConstruct修飾的方法會(huì)在destroy()方法之后運(yùn)行,在Servlet被徹底卸載之前。
之前運(yùn)行@PostConstruct出現(xiàn)問題,發(fā)現(xiàn)在@PostConstruct修飾的方法結(jié)束之前,web應(yīng)用無法正常執(zhí)行,無法處理web請(qǐng)求。
Spring Boot應(yīng)用程序在啟動(dòng)后,會(huì)遍歷CommandLineRunner接口的實(shí)例并運(yùn)行它們的run方法。也可以利用@Order注解(或者實(shí)現(xiàn)Order接口)來規(guī)定所有CommandLineRunner實(shí)例的運(yùn)行順序。不過實(shí)現(xiàn)CommandLineRunner不會(huì)影響其他web請(qǐng)求。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注