Spring boot ---SpringBootServletInitializer 啟動spring boot項目的方式之一


方式一:

      默認的application啟動,在創建項目時自動生成application啟動類,直接run執行即可。

方式二:使用外置的tomcat啟動

      默認的啟動類要繼承SpringBootServletInitiailzer類,並復寫configure()方法。

@SpringBootApplication
public class FileuploadApplication extends SpringBootServletInitializer {
 
    public static void main(String[] args) {
        SpringApplication.run(FileuploadApplication.class, args);
    }
 
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return super.configure(builder);
    }

  2.添加本地tomcat並進行配置

 

 

 

 

 

 

SpringBootServletInitializer的執行過程,簡單來說就是通過SpringApplicationBuilder構建並封裝SpringApplication對象,並最終調用SpringApplication的run方法的過程。

spring boot就是為了簡化開發的,也就是用注解的方式取代了傳統的xml配置。

SpringBootServletInitializer就是原有的web.xml文件的替代。

使用了嵌入式Servlet,默認是不支持jsp。

SpringBootServletInitializer 可以使用外部的Servlet容器,使用步驟:

      1.必須創建war項目,需要創建好web項目的目錄。2.嵌入式Tomcat依賴scope指定provided。3.編寫SpringBootServletInitializer類子類,並重寫configure方法。

public class ServletInitializer extends SpringBootServletInitializer { 
    @Override  
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {  
        return application.sources(SpringBoot04WebJspApplication.class);  
    }  
}

4.啟動服務器。

jar包和war包啟動區別

    jar包:執行SpringBootApplication的run方法,啟動IOC容器,然后創建嵌入式Servlet容器

 war包:  先是啟動Servlet服務器,服務器啟動Springboot應用(springBootServletInitizer),然后啟動IOC容器

SpringBootServletInitializer實例執行onStartup方法的時候會通過createRootApplicationContext方法來執行run方法,接下來的過程就同以jar包形式啟動的應用的run過程一樣了,在內部會創建IOC容器並返回,只是以war包形式的應用在創建IOC容器過程中,不再創建Servlet容器了。


原文鏈接:https://blog.csdn.net/yanyuan1993/article/details/82108829


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM