SpringBoot系列之外部Servlet容器使用及配置

外部Servlet容器使用及配置

上一篇文章介绍了嵌入式的servlet容器配置及启动原理 本文将介绍使用外部servlet容器启动SpringBoot应用的方法及其启动原理。

笔者不太会使用大量的文字描述某些问题,所以文章会更多的出现SpringBoot的源码,通过对源码的注释来向读者描述相关的内容,建议读者使用电脑结合代码进行阅读

使用外置的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) {
		return application.sources(WebStartWarApplication.class);
	}
}

4)、启动服务器就可以使用;
注意:不是仅仅将原来的项目打包方式改成war包就可以直接使用外部容器启动;

如果使用开发工具(IDEA或spring提供的项目初始化页面等)的创建向导创建项目选择打包方式为war,可以自动生成ServletInitializer避免重复劳动。

如何在IDEA配置tomcat服务器

1)、首先需在本地安装Tomcat服务器,这类文章较多这里不再赘述

2)、在IDEA上编辑配置项 Edit Configurations,进入到配置页面

SpringBoot系列之外部Servlet容器使用及配置

3)、点击左上角加号->Tomcat Server->Local->点击Configure,并选择本地tomcat服务器->点击Deployment进入war包部署页面

SpringBoot系列之外部Servlet容器使用及配置

4)、在Deployment标签页,点击+号选择项目暴露的war包,点击OK,就会发现IDEA右上方可以启动外部tomcat服务器了

SpringBoot系列之外部Servlet容器使用及配置

注:虚拟机参数设置编码格式 -Dfile.encoding=UTF-8,可以解决使用postman发送中文出现乱码的请况