SpringBoot使用外置的Servlet容器的方法步驟
嵌入式Servlet容器:應(yīng)用打成可執(zhí)行的jar
優(yōu)點(diǎn):簡(jiǎn)單、便攜
缺點(diǎn):默認(rèn)不支持JSP、優(yōu)化定制比較復(fù)雜
外置的Servlet容器:外面安裝Tomcat---應(yīng)用war包的方式打包
一.嵌入式tomcat啟動(dòng)項(xiàng)目步驟:
1.創(chuàng)建一個(gè)普通maven項(xiàng)目;(利用idea創(chuàng)建好目錄結(jié)構(gòu))
可以創(chuàng)建一個(gè)普通的maven項(xiàng)目
2.將項(xiàng)目修改為springboot的項(xiàng)目結(jié)構(gòu)
在pom文件中添加啟動(dòng)類依賴
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies>
編寫啟動(dòng)類
@SpringBootApplication public class SpringbootTomcatApplication { public static void main(String[] args) { org.springframework.boot.SpringApplication.run(SpringbootTomcatApplication.class, args); } }
創(chuàng)建配置文件application.yml
配置端口號(hào)
server: port: 8085
3.創(chuàng)建templates目錄,編寫前端頁(yè)面
在pom文件中導(dǎo)入templates視圖引擎依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
編寫前端頁(yè)面
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>success</h1> </body> </html>
4.創(chuàng)建controller層,編寫controller代碼
@Controller @RequestMapping("/user") public class SuccessController { @RequestMapping("/success") public String success(){ System.out.println("1111111111111111111"); return "success"; } }
在pom文件中導(dǎo)入web依賴,否則@RequestMapping注解無(wú)法識(shí)別
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
此時(shí)就可以成功啟動(dòng)了
注意,此時(shí)是內(nèi)置的tomcat啟動(dòng)的
接下來(lái)演示如何修改使用外置tomcat啟動(dòng)項(xiàng)目:
二.外置tomcat啟動(dòng)項(xiàng)目:
1.必須創(chuàng)建一個(gè)war項(xiàng)目;(利用idea創(chuàng)建好目錄結(jié)構(gòu))
然后在pom文件中指定打包方式為war包
2.導(dǎo)入外部Tomcat依賴并指定為provided;
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
3.修改項(xiàng)目結(jié)構(gòu)
創(chuàng)建Webapp/WEB-INF/Pages/success.jsp前端頁(yè)面
創(chuàng)建Webapp/WEB-INF/Web.xml配置文件
success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>success</title> </head> <body> <h1>外置tomcat的使用</h1> </body> </html>
Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> </web-app>
修改項(xiàng)目結(jié)構(gòu)
4.配置tomcat
5.必須編寫一個(gè)SpringBootServletInitializer的子類,并調(diào)用configure方法
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { //傳入SpringBoot應(yīng)用的主程序 return application.sources(SpringBootApplication.class); } }
編寫controller層代碼
在yml配置文件編寫前綴后綴
spring: mvc: view: prefix: /WEB-INF/Pages/ suffix: .jsp
這樣就不會(huì)訪問(wèn)到你之前寫的success.html頁(yè)面了
而是訪問(wèn)剛剛寫的success.jsp頁(yè)面
此時(shí)啟動(dòng)就可以了
原理
jar包:執(zhí)行SpringBoot主類的main方法,啟動(dòng)ioc容器,創(chuàng)建嵌入式的Servlet容器;
war包:?jiǎn)?dòng)服務(wù)器,服務(wù)器啟動(dòng)SpringBoot應(yīng)用【SpringBootServletInitializer】,啟動(dòng)ioc容器;
以上就是SpringBoot使用外置的Servlet容器的方法步驟的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot使用Servlet容器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring中異步注解@Async的使用、原理及使用時(shí)可能導(dǎo)致的問(wèn)題及解決方法
這篇文章主要介紹了Spring中異步注解@Async的使用、原理及使用時(shí)可能導(dǎo)致的問(wèn)題及解決方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07java實(shí)現(xiàn)ModbusCRC16校驗(yàn)的示例代碼
本文介紹了使用Java實(shí)現(xiàn)ModbusCRC16校驗(yàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11IntelliJ IDEA修改內(nèi)存大小,使得idea運(yùn)行更流暢
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA修改內(nèi)存大小,使得idea運(yùn)行更流暢的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10Java C++實(shí)現(xiàn)相同MD5加密算法的方式
這篇文章主要介紹了Java與C++實(shí)現(xiàn)相同MD5加密算法的方法,需要的朋友可以參考下面文章內(nèi)容2021-09-09Java中用enum結(jié)合testng實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)的方法示例
TestNG數(shù)據(jù)驅(qū)動(dòng)提供的參數(shù)化讓我們?cè)跍y(cè)試項(xiàng)目可以靈活根據(jù)需求建立不同的dataprovider來(lái)提供數(shù)據(jù),而真正實(shí)現(xiàn)數(shù)據(jù),頁(yè)面,測(cè)試彼此獨(dú)立而又有機(jī)結(jié)合的可能性。 下面這篇文章主要給大家介紹了Java中用enum和testng做數(shù)據(jù)驅(qū)動(dòng)的方法示例,需要的朋友可以參考借鑒。2017-01-01關(guān)于Mybatis 中使用Mysql存儲(chǔ)過(guò)程的方法
這篇文章給大家介紹了Mybatis 中使用Mysql存儲(chǔ)過(guò)程的方法,本文通過(guò)實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-03-03