使用外置的Servlet容器

嵌入式Servlet容器:
优点:简单、便捷
缺点:默认不支持JSP、优化定制比较复杂(使用定制器【ServerProperties、自定义EmbeddedServletContainerCustomizer】),自己编写嵌入式Servlet容器的创建工厂【EmbeddedServletContainerFactory】;

外置的Servlet容器:外面安装Tomcat--应用war包的方式打包

步骤:
1)、必须创建一个war项目(利用idea创建好目录结构)
2)、将嵌入式的Tomcat指定为provided;
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
</dependency>
3)、必须编写一个SpringBootServletInitializer 的实现子类,并调用configure方法
public class ServletInitializer extends SpringBootServletInitializer {

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
//传入SpringBoot的应用主程序
      return application.sources(SpringBoot04WebJspApplication.class);
   }

}
4)、启动服务器就可以使用;

原理:

jar包:执行SpringBoot主类的main方法,启动ioc容器,创建嵌入式的Servlet容器;
war包:启动服务器,服务器启动SpringBoot应用,启动ioc容器;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菜鸟致敬

提供免费MySQL数据库学习

最近买了一个服务器,放着也没有什么作用,于是搭建了MySQL 提供大家学习数据使用吧,想知道数据的用户信息请在后台回复MySQL 如果大家有其他想搭建的数据库环...

3529
来自专栏Java后端生活

JavaWeb(八)MVC设计模式

1405
来自专栏林德熙的博客

win10 uwp 保存用户选择文件夹

如果我们每次把临时处理的文件保存,都要让用户选择一次,用户会不会觉得uwp垃圾?如果我们每次打开应用,都从某个文件读取,而这个文件不在应用目录和已知的目录,那么...

542
来自专栏MYSQL轻松学

临时表tmp table如何避免

1、配置文件参数my.cnf tmp_table_size=64M max_heap_table_size=64M tmpdir = /data/mysql/t...

3007
来自专栏专业duilib使用+业余界面开发

mysql5.7 安装,服务启动失败无data目录处理

2193
来自专栏木头编程 - moTzxx

自测:rsync 指定不需同步的目录操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

702
来自专栏wblearn

redis集群报错Node is not empty

继上一篇redis3.0.x集群搭建完成之后,当然要用客户端JedisCluster简单测试一下集群啦,这样就要将redis.conf里bind 127.0.0...

611
来自专栏陈树义

如何在IntelJ下用Maven创建一个Web项目

相信一开始做Web项目的同学都是直接把项目包放在WEB-INF/lib目录下,然后就开始做项目了。但是之后接触了一些使用了Maven进行包管理的项目,我们就不得...

2546
来自专栏佳爷的后花媛

tp中遇到的相关方法

getDbFields 这个方法在tp手册的字段定义中 通常每个模型类是操作某个数据表,在大多数情况下,系统会自动获取当前数据表的字段信息。 系统会在模型...

1152
来自专栏黑白安全

Discuz! X 最新Getshell漏洞批量利用

这个漏洞这个漏洞bug出现在一个DZ X系列自带的转换工具里面漏洞路径是:utility/convert/data/config.inc.php

1092

扫码关注云+社区