SpringBoot 創(chuàng)建web項目并部署到外部Tomcat
前言
使用SpringBoot來開發(fā)項目相對于傳統(tǒng)模式,要快速優(yōu)雅許多,相信目前國內(nèi)絕大部分web項目的開發(fā)還沒有使用SpringBoot來做,如果你正需要開發(fā)一個web項目,不妨嘗試使用SpringBoot來做。
本身SpringBoot是內(nèi)嵌了web服務(wù)器,不需要單獨的Tomcat,但是實際生產(chǎn)環(huán)境中,如果是web項目,Tomcat肯定是運維部門部署好了的,這個Tomcat,做了一些個性化的設(shè)置,開發(fā)出來的項目需要部署到這個Tomcat,如果是使用SpringBoot開發(fā)web服務(wù),我認(rèn)為可以直接使用內(nèi)嵌的Tomcat,簡單易于維護(hù)。
技術(shù)框架
- SpringBoot
- Maven
- Tomcat8
要點
- 啟動類Application.java需要繼承SpringBootServletInitializer
- 打包war的時候,過濾tomcat依賴,需要添加<scope>provided</scope>
- 通過maven-war-plugin執(zhí)行打包文件名,在application.properties文件中指定web項目的上下文
- 老外寫的文章https://www.mkyong.com/spring-boot/spring-boot-deploy-war-file-to-tomcat/ 英文好的同學(xué)可以直接查看這篇文章
開發(fā)過程
1.創(chuàng)建一個Maven Project(quickstart),名稱為myweb,添加POM依賴
<modelVersion>4.0.0</modelVersion>
<groupId>com.boyue</groupId>
<artifactId>myweb</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>myweb Maven Webapp</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>myweb</warName>
</configuration>
</plugin>
</plugins>
</build>
2.創(chuàng)建Application.java
@SpringBootApplication
public class SpringBootWebApplication extends SpringBootServletInitializer {
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootWebApplication.class, args);
}
}
3.創(chuàng)建IndexController.java
@Controller
@RequestMapping("/")
public class IndexController{
@RequestMapping("/index")
public String index(ModelMap map){
map.addAttribute("host","chabaoo.cn");
return "index";
}
}
4.在src/main/resources下創(chuàng)建application.properties
server.contextPath=/myweb
5.在src/main/resources創(chuàng)建templates文件夾,添加index.html文件
<!DOCTYPE HTML>
<html>
<head lang="en">
<meta charset="UTF-8" />
<title></title>
</head>
<body>
<h1 th:text="${host}"></h1>
</body>
6.運行方式
- 直接啟動Application.java的main函數(shù),通過SpringBoot內(nèi)嵌的Tomcat運行
- 執(zhí)行mvn package 生產(chǎn)"myweb.war"包,拷貝到自己部署的Tomcat下,啟動Tomcat運行
7.運行結(jié)果
訪問http://localhost:8080/myweb/index
頁面顯示chabaoo.cn
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java設(shè)計模式之單態(tài)模式(Singleton模式)介紹
這篇文章主要介紹了Java設(shè)計模式之單態(tài)模式(Singleton模式)介紹,本文講解了如何使用單例模式、使用單例模式注意事項等內(nèi)容,需要的朋友可以參考下2015-03-03
java自帶命令行工具jmap、jhat與jinfo的使用實例代碼詳解
本篇文章主要通過代碼實例對java自帶命令行工具jmap、jhat與jinfo的使用做出了詳解,需要的朋友可以參考下2017-04-04
解決使用RestTemplate時報錯RestClientException的問題
這篇文章主要介紹了解決使用RestTemplate時報錯RestClientException的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08

