1.下载安装Tomcat
下载地址:https://tomcat.apache.org/download-90.cgi
如下图所示:
2.入口类继承SpringBootServletInitializer重写configure方法
如果要进行生产环境部署,需要单独配置一下Spring Boot 的入口类,需要继承SpringBootServletInitializer类,重写configure方法,因为默认情况外部Tomcat不能读取到Spring Boot 入口类的main方法启动程序加载,使用需要继承,代码如下:
package com.luzhanshi.springBootFrame; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class SpringBootFrameApplication extends SpringBootServletInitializer { /** * Spring Boot 默认main方法 * @param args */ public static void main(String[] args) { SpringApplication.run(SpringBootFrameApplication.class, args); } /** * 重写configure方法,加载启动类 * @param builder * @return */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringBootFrameApplication.class); } }
部分不熟悉IDEA的同学可能不知道怎么重新父类的方法,参照下图即可:
3.配置pom.xml
需要配置一下pom.xml,排除一下内置tomcat的jar包,防止打包之后与外面Tomcat jar 包冲突,导致项目启动失败,配置如下:
<!--排除内置tomcat jar包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
主要的代码是provided,设置打包不会包含进去,由其他设施提供。
4.IDEA生成war文件
idea打war包步骤可参考鄙人:https://www.cnblogs.com/luzhanshi/p/10924640.html文章
如果打包为jar包的时候,不会包含JSP文件,所以访问的时候回404,而打包为war的时候回包含JSP文件,所以需要把打包格式修改为war.
jar和war的区别?
- jar(java application archive)java应用程序库,通常为开发引用的通用类
- war(web application archive)web应用程序
所以从jar和war的区别来看,网页程序打包成war格式也是很合适的。
如果需要修改生成文件的文件名称,可以设置build下的finalName属性,代码如下:
5.配置Tomcat运行项目
步骤一:把war文件复制到tomcat的webapps目录下
步骤二:配置conf/server.xml
在Host标签内添加Context设置,docBase属性填写war文件名称,配置如下:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="此处填写war包名" debug="0" privileged="true" reloadable="true" /> <!-- 其他代码 --> </Host>
步骤三:启动tomcat
运行bin/shutdown.bat文件,启动tomcat
到此项目部署成功,虽然本人部署到Windows服务器了,Linux也是一样的步骤。
四、知识扩展:Spring Boot 模板推荐
虽然上文我们详细介绍了JSP在Spring Boot 中使用,但是Spring Boot官方并不推荐使用JSP(原因见下文)。
Spring Boot推荐模板引擎:
- Thymeleaf
- Freemarker
- Mustache
- Groovy Templates
Spring为什么不推荐使用JSP?
Spring官方不推荐使用JSP的原因有这么几个:
- 官方文档JSP没有Thymeleaf好;
- Thymeleaf健康的开源项目,几乎每个月都有更新,而JSP已经好几年没有实质性的进展;
- Thymeleaf有迅速响应的用户论坛。
更多详情,点击查看:https://spring.io/blog/2012/10/30/spring-mvc-from-jsp-and-tiles-to-thymeleaf
总结:按照官方的说法,如果你有数百个JSP页面,我们并不建议您应该立即抛弃它们,重新使用Thymeleaf,但是,如果您开始开发一个新项目,强烈鼓励您比较其他模板引擎和JSP,以确认哪一个更适合您。