補充一點:搜索了下別人Spring Boot部署方案,大多都說:①packaging設為war;②要添加Spring Boot的tomcat依賴;③修改output路徑,但是使用STS新建Spring Boot項目的話,前面選擇正確,POM里面會自動添加①和②,同時不需要③。
所以,建議使用STS創建Spring Boot項目!
在群里看到有人問“為什么SpringBoot項目打的war包,部署到tomcat之后出錯”,於是動手測試了一番 (本人並沒在生產環境下用過Spring Boot)。
先說結論:
- 可以直接右鍵導出(Export..)為War文件,部署到Tomcat可以正常啟動、訪問。
- 可以maven package,同樣是打成War文件,部署到Tomcat可以正常啟動、訪問。
- 但是,二者的War包大小是不同的,maven package打成的War包更大一些,下面是多出來的內容:
目前尚不清楚為什么二者都可以正常執行,猜測:可能是因為這個測試項目沒有用到WebSocket、EL等功能,僅用到Servlet,但這個已經由Tomcat提供了。--稍后測試。
測試項目為STS創建的Spring Boot項目,Maven(類型)+War(打包)+Web(依賴),僅提供了一個測試用的Controller。
具體操作步驟如下:
1、在STS中新建Spring Starter Project,打包方式選擇War。
2、下一步,選擇依賴,這里僅做示意,所以只選擇了Web依賴。
3、點擊完成,直接下載,然后等候STS導入新建項目成功。
4、編寫Controller,同樣僅編寫了一個用於示意,內容如下:
package win.larryzeal.deploy.web.controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author LarryZeal * */ @RestController @RequestMapping("/hello") public class HelloController { @RequestMapping("/{name}") public String hello(@PathVariable String name){ return "hello "+name; } }
很簡單的Controller,就是返回字符串。
5、打包方式1:右鍵導出War包 -- 同傳統的JavaWeb項目,然后部署即可
6、打包方式2:maven package
可以在項目文件夾下進行CMD命令行操作:mvn package 。
也可以在STS中設置:
執行結果如下:
此時,在 target/ 下面就會生成一個War包,部署即可(建議先改名,否則項目路徑太長,不便於輸入):