zoukankan      html  css  js  c++  java
  • 八、SpringBoot生产环境部署

    war包部署

    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.排除内置tomcat

    需要配置一下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.

    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也是一样的步骤。

    如果我们不想加8080端口访问,那么我们可以将tomcat默认的8080端口修改为80,这样因为浏览器在我们没有输入端口时,默认的端口时80,那么我们就不用输入端口了:

    打开tomcat文件夹-->找到conf-->server.xml-->用记事本打开

     

    此时我们不用输入端口也可以访问项目了

    jar包部署

    ecliplse获得jar:

     IDEA获得jar:

     上面生成的jar包都会出现在target目录下面

    把上面的jar包复制到一个新建的文件夹:

    将项目里面的下面这个文件也拷贝到该文件夹:

     

    最后在该文件夹新建一个startup.bat文件,并编辑如下内容:

    项目发布时最终文件如下:

    application.properties是工程的配置文件,配置数据库库接参数、日志文件、日志等级、服务使用的端口等配置信息,把工程中文件拷贝出来即可

    startup.bat启动服务的批处理,也可包含配置信息,参考如下图,

    最后以管理员身份运行bat文件,项目就启动了

    访问地址和本地访问地址一样:

    jar和war的区别?

    • jar(java application archive)java应用程序库,通常为开发引用的通用类
    • war(web application archive)web应用程序

    所以从jar和war的区别来看,网页程序打包成war格式也是很合适的。

    四、知识扩展: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,以确认哪一个更适合您。

     

  • 相关阅读:
    钢铁雄心4陆战攻略
    装甲军团1跳出问题
    Git:解决报错:fatal: The remote end hung up unexpectedly
    保存网页到zotero研究
    面向服务软件工程
    华为matebook x pro监听耳机电流声
    战争游戏红龙修改手册
    manjaro20安装teamviewer出现sudo teamviewer –daemon start无响应
    manjaro20WPS缺少字体
    manjora20不小心卸载,重新安装terminal,软件商店/软件中心linux类似
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/10924829.html
Copyright © 2011-2022 走看看