Springboot使用外置的Servlet容器
嵌入式Servlet容器:应用打成可执行的jar
优点:简单、便携
缺点:默认不支持JSP、优化定制比较复杂
外置的Servlet容器:外面安装Tomcat---应用war包的方式打包
一.嵌入式tomcat启动项目步骤:
1.创建一个普通maven项目;(利用idea创建好目录结构)
可以创建一个普通的maven项目
2.将项目修改为springboot的项目结构
在pom文件中添加启动类依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies>
编写启动类
@SpringBootApplication public class SpringbootTomcatApplication { public static void main(String[] args) { org.springframework.boot.SpringApplication.run(SpringbootTomcatApplication.class, args); } }
创建配置文件application.yml
配置端口号
server: port: 8085
3.创建templates目录,编写前端页面
在pom文件中导入templates视图引擎依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
编写前端页面
<!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.创建controller层,编写controller代码
@Controller @RequestMapping("/user") public class SuccessController { @RequestMapping("/success") public String success(){ System.out.println("1111111111111111111"); return "success"; } }
在pom文件中导入web依赖,否则@RequestMapping注解无法识别
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
此时就可以成功启动了
注意,此时是内置的tomcat启动的
接下来演示如何修改使用外置tomcat启动项目:
二.外置tomcat启动项目:
1.必须创建一个war项目;(利用idea创建好目录结构)
然后在pom文件中指定打包方式为war包
2.导入外部Tomcat依赖并指定为provided;
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
3.修改项目结构
创建Webapp/WEB-INF/Pages/success.jsp前端页面
创建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>
修改项目结构
4.配置tomcat
5.必须编写一个SpringBootServletInitializer的子类,并调用configure方法
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { //传入SpringBoot应用的主程序 return application.sources(SpringBootApplication.class); } }
编写controller层代码
在yml配置文件编写前缀后缀
spring: mvc: view: prefix: /WEB-INF/Pages/ suffix: .jsp
这样就不会访问到你之前写的success.html页面了
而是访问刚刚写的success.jsp页面
此时启动就可以了
原理
jar包:执行SpringBoot主类的main方法,启动ioc容器,创建嵌入式的Servlet容器;
war包:启动服务器,服务器启动SpringBoot应用【SpringBootServletInitializer】,启动ioc容器;
原文地址:https://blog.csdn.net/isolusion/article/details/144793635
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!