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啓動方便很多,所以需要再引入需要的依賴。但設置scope
爲provided
,表示編譯、測試、運行時使用jar包,但是打包的時候會被排除掉。如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
使用devtools實現熱部署
- 經試驗,開發的時候要實現熱部署,必須使用spring boot方式或main方法啓動,用maven 的run方法無效。
- 經試驗,開發的時候要實現熱部署必須使用spring boot的tomcat,這也是上一節又加上tomcat依賴的另一個原因。
<!-- spring boot 熱部署熱修改插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>provided</scope>
</dependency>
optional
爲true
表示什麼意思呢?
明天補充: