SpringBoot使用外置的Servlet容器(详细步骤)
嵌入式Servlet容器:应用打成可执行的jar
优点:简单、便携;
缺点:默认不支持JSP、优化定制比较复杂.;
外置的Servlet容器:外面安装Tomcat---应用war包的方式打包;
操作步骤:
方式一:创建一个MavenJava的项目进行修改
1.首先创建一个mavenJava的项目
2.修改配置文件 pom.xml
- 将打包方式改为war包
- 导入父工程依赖
- 导入相关的SpringBoot依赖
- 将嵌入式的Tomcat指定为provided
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--添加父工程目录-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.qcby</groupId>
<artifactId>springBootTomcat</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<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>
</project>
3. 创建三级包,创建启动类
package com.qcby.springBootTomcat;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootTomcatApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootTomcatApplication.class, args);
}
}
4. 配置项目的目录结构
success2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>success2</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>
5.设置项目结构
设置项目结构的两种方式
1:适用于较低版本的idea
2.File ---> Project Structure
进行设置
Apply -->OK
然后就可以进行项目部署了
需要注意这个位置
6.编写一个配置类,并调用configure方法
package com.qcby.springBootTomcat;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringBootTomcatApplication.class);
}
}
7.配置视图解析
8.启动服务器
执行结果
方式二:直接创建一个Spring项目,将打包方式改为war包
1.将项目改为war包的原因
因为现在将Tomcat换成外置的项目,因此SpringBoot无法进行自动配置,因此需要将项目打包成war包
2.将嵌入式的Tomcat指定为provided;
3.配置项目的目录结构
配置项目的目录结构
4. 必须编写一个SpringBootServletInitializer的子类,并调用configure方法
5.配置yml文件,指定视图解析的相关配置
6.启动服务器