上一篇文章介绍了嵌入式的servlet容器配置及启动原理 本文将介绍使用外部servlet容器启动SpringBoot应用的方法及其启动原理。
笔者不太会使用大量的文字描述某些问题,所以文章会更多的出现SpringBoot的源码,通过对源码的注释来向读者描述相关的内容,建议读者使用电脑结合代码进行阅读
使用外置的Servlet容器:外面安装Tomcat---应用war包的方式打包;
1)、必须创建一个war项目;(利用idea创建好目录结构)
2)、将嵌入式的Tomcat指定为provided;
org.springframework.boot
spring-boot-starter-tomcat
provided
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避免重复劳动。
1)、首先需在本地安装Tomcat服务器,这类文章较多这里不再赘述
2)、在IDEA上编辑配置项 Edit Configurations,进入到配置页面
3)、点击左上角加号->Tomcat Server->Local->点击Configure,并选择本地tomcat服务器->点击Deployment进入war包部署页面
4)、在Deployment标签页,点击+号选择项目暴露的war包,点击OK,就会发现IDEA右上方可以启动外部tomcat服务器了
注:虚拟机参数设置编码格式 -Dfile.encoding=UTF-8,可以解决使用postman发送中文出现乱码的请况