八、SpringBoot生产环境部署

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的原因有这么几个:

  1. 官方文档JSP没有Thymeleaf好;
  2. Thymeleaf健康的开源项目,几乎每个月都有更新,而JSP已经好几年没有实质性的进展;
  3. Thymeleaf有迅速响应的用户论坛。

更多详情,点击查看:https://spring.io/blog/2012/10/30/spring-mvc-from-jsp-and-tiles-to-thymeleaf

总结:按照官方的说法,如果你有数百个JSP页面,我们并不建议您应该立即抛弃它们,重新使用Thymeleaf,但是,如果您开始开发一个新项目,强烈鼓励您比较其他模板引擎和JSP,以确认哪一个更适合您。

猜你喜欢

转载自www.cnblogs.com/luzhanshi/p/10924829.html