Spring Boot 熱部署及內置tomcat相關

Spring Boot 熱部署及內置tomcat相關

不使用spring boot提供的內置tomcat

有時候項目部署的時候不想打成jar包,而是war包使用外部中間件如tomcat等,那麼打包的時候就要排除spring boot 內置的tomcat,如下:

<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-web</artifactId>  
     <exclusions>  
        <exclusion>  
           <groupId>org.springframework.boot</groupId>  
           <artifactId>spring-boot-starter-tomcat</artifactId>  
        </exclusion>  
     </exclusions>  
</dependency>  

1. 這樣排除之後,可能會有一些問題,因爲可能tomcat中還有其其他的依賴也跟着tomcat被排除了。
2. 而且開發的時候使用內置tomcat啓動方便很多,所以需要再引入需要的依賴。但設置scopeprovided,表示編譯、測試、運行時使用jar包,但是打包的時候會被排除掉。如下:

<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-tomcat</artifactId>  
    <scope>provided</scope>  
</dependency>  

使用devtools實現熱部署

  1. 經試驗,開發的時候要實現熱部署,必須使用spring boot方式或main方法啓動,用maven 的run方法無效。
  2. 經試驗,開發的時候要實現熱部署必須使用spring boot的tomcat,這也是上一節又加上tomcat依賴的另一個原因。
<!-- spring boot 熱部署熱修改插件 -->
<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-devtools</artifactId>  
    <optional>true</optional>  
    <scope>provided</scope>
</dependency>

optionaltrue表示什麼意思呢?
明天補充:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章