文章目录
第4章 SpringBoot与Web应用
通过本章学习,可以达到以下目标:
1.掌握SpringBoot项目war包的生成与Tomcat发布。
2.掌握SpringBoot基于https运行模式的配置。
3.掌握SpringBoot错误处理。
4.掌握SpringBoot与文件上传处理。
5.掌握SpringBoot与拦截器的使用。
SpringBoot虽然极大地简化了Web项目开发与部署环节的配置,但是其依然属于Web项目,因此在实际工作中需要考虑与Tomcat的整合,当需要安全访问时还应该提供https支持。在本章中将为读者讲解SpringBoot项目与Tomcat的结合处理、错误处理机制、文件上传处理以及拦截器的使用。
4.1 配置Tomcat运行
在SpringBoot中默认支持Tomcat容器,所以当一个SpringBoot项目打包生成*.jar文件并且直接执行的时候就会自动启动内部的Tomcat容器。除了此种模式之外,也可以将Web项目打包为*.war文件,采用部署的形式通过Tomcat进行发布处理。
提示:Tomcat部署时的配置。
在将SpringBoot打包为*.war文件的时候,如果想正常部署一定要注意以下两点:
1.取消项目中的Jetty容器的配置。
2.将所有的源文件夹目录设置输出资源,修改父pom.xml中的配置。
1.【mldnboot-web项目】修改pom.xml配置文件,将程序的打包类型定义为*.war。
<packaging>war</packaging> <!-- 项目打包类型 -->
2.【mldnboot-web项目】修改pom.xml配置文件,追加war文件打包插件。
3.【mldnboot-web项目】更新Maven项目,随后会提醒开发者当前项目中缺少WEB-INF/web.xml配置文件,此时需要开发者手工创建。创建完成的目录结构如图4-1所示。
图4-1 创建Web项目
4.【mldnboot-web项目】如果现在项目要以Tomcat的形式运行,那么需要修改SpringBoot程序启动类定义,该类必须要继承SpringBootServletInitializer父类,同时还需要覆写configure()方法。
5.【mldnboot-web项目】对项目进行打包部署(clean package),成功之后会在target目录中形成mldn.war程序文件,随后可以将此文件直接复制到Tomcat所在目录之中,而后启动Tomcat进行项目发布。
4.2 https安全访问
SpringBoot启动时默认采用http进行通信协议定义,考虑到安全,往往会使用https进行访问。正常来讲,https的访问是需要证书的,并且为了保证这个证书的安全,一定要在项目中使用CA进行认证。下面只是在本机做一个简单的模拟,利用Java提供的keytool命令实现证书的生成。
1.【操作系统】利用keytool生成一个证书。
该程序执行完成后会生成一个名称为keystore.p12的证书文件,该证书的别名为mytomcat,访问密码为mldnjava。
2.【mldnboot-web项目】将生成的keystore.p12复制到src/main/resources目录中,如图4-2所示。
图4-2 配置安全访问
3.【mldnboot-web项目】修改application.yml文件,配置ssl安全访问。