zoukankan      html  css  js  c++  java
  • web应用部署(Tomcat,springboot部署方式)

    转载自:https://www.cnblogs.com/haimishasha/p/10791454.html

    核心内容

    1.在Tomcat中有四种部署Web应用的方式,分别是:

    (1)利用Tomcat自动部署(项目直接拷贝OR WAR包拷贝 到webapps下)

    (2)利用控制台进行部署(tomcat的manager控制台的deploy区域

    (3)增加自定义的Web部署文件(%Tomcat_Home%confCatalinalocalhostAppName.xml)

    (4)手动修改%Tomcat_Home%confserver.xml文件来部署web应用

    2.SpringBoot WEB项目两种发布和部署方式

    (1)通过WAR包

    (2)通过JAR包(官网推荐)

    3.springboot有3中热部署方式:
    (1)使用springloaded配置pom.xml文件,使用mvn spring-boot:run启动
    (2)使用springloaded本地加载启动,配置jvm参数   -javaagent:<jar包地址> -noverify
    (3)使用devtools工具包,操作简单,但是每次需要重新部署

    1. Tomcat中有四种部署Web应用的方式

    第一种方式:利用Tomcat自动部署

            利用Tomcat自动部署方式是最简单的、最常用的方式。若一个web应用结构为D:workspaceWebAppAppNameWEB-INF*,只要将一个Web应用的WebContent级的AppName直接扔进%Tomcat_Home%webapps文件夹下,系统会把该web应用直接部署到Tomcat中。所以这里不再赘述。

    第二种方式:利用控制台进行部署

            若一个web应用结构为D:workspaceWebAppAppNameWEB-INF*,利用控制台进行部署的方式如下:进入tomcat的manager控制台的deploy区域——在Context path中键入"XXX"(可任意取名)——在WAR or Directory URL:键入D:workspaceWebAppAppName (表示去寻找此路径下的web应用)——点击deploy按钮。

      

              然后在%Tomcat_Home%webapps路径下将会自动出现一个名为XXX的文件夹,其内容即是D:workspaceWebAppAppName的内容,只是名字是XXX而已(这就是前面在Context path键入XXX的结果)。

    以上说明利用控制台进行部署的实质仍然是利用Tomcat的自动部署。

    第三种方式:增加自定义的Web部署文件

            若一个web应用结构为D:workspaceWebAppAppNameWEB-INF*,这种部署方式稍微复杂一点,我们需要在%Tomcat_Home%conf路径下新建一个文件夹catalina——再在其中新建一个localhost文件夹——最后再新建一个XML文件,即增加两层目录并新增XML文件:%Tomcat_Home%confCatalinalocalhostweb应用配置文件.xml ,该文件就是部署Web应用的配置文件。

      例如,我们新建一个%Tomcat_Home%confCatalinalocalhostXXX.xml,  该文件的内容如下:

     <Context path="/XXX" reloadable="true" docBase="D:workspaceWebAppAppName" workDir="D:workspaceWebAppwork"/> 注意: (1)以上代码中的workDir表示将该Web应用部署后置于的工作目录(Web应用中JSP编译成的Servlet都可在其中找到),如果使用的Eclipse作为IDE,一般可人为设置在WebApp的work目录下。 如果自定义web部署文件XXX.xml中未指明workdir,则web应用将默认部署在%Tomcat_Home%workCatalinalocalhost路径下新建的以XXX命名的文件夹下。(Web应用中JSP编译成的Servlet都可在其中找到) (2)Context path即指定web应用的虚拟路径名。docBase指定要部署的Web应用的源路径。

            其实开发者可以使用安装有Tomcat插件eclipse自动创建部署文件来部署Web应用而不必再手动建立该文件,方法如下: 

    1. 打开Eclipse——打开菜单栏window选择preference(首选项)——左侧选择Tomcat,如下图示:

            2. 可以看到上图中高亮画出的Context declaration mode(Context 声明模式)中选择以Context files增加自定义部署文件的形式部署web应用——然后Contexts directory中指定上述文件的上级目录(即%Tomcat_Home%confCatalinalocalhost )——点击Apply或OK。

            3. 完上述步骤,再选中Web项目右键点击properties(属性)——选择右侧的Tomcat ,如下图所示:

          4. 勾上"Is a Tomcat project"前的checkbox,将项目关联至Tomcat。

    在Context name中填入XXX,即Web应用自定义部署文件名和Context path名。

    在Subdirectory to set as web application root (optional)中填入要部署的Web应用的实际路径(即WEB-INF上级目录)。

    注意:Eclipse会自动地将workdir设置在WorkspaceWebAppwork下。

    如此便自动创建了%Tomcat_Home%confCatalinalocalhostXXX.xml 文件。启动Tomcat 即可自动部署Web应用。

    第四种方式:手动修改%Tomcat_Home%confserver.xml文件来部署web应用

             此方法即打开%Tomcat_Home%confserver.xml文件并在其中增加以下元素:

       <Context docBase="D:workspaceWebAppAppName" path="/XXX" debug="0" reloadable="false" />

             然后启动Tomcat即可。

             当然如果使用Eclipse,在Eclipse中的设置也有改变:打开菜单栏window选择preference(首选项)——左侧选择Tomcat——可以看到上图中高亮画出的Context declaration mode(Context 声明模式)中选择以Server.xml文件来部署web应用。

      

    2. SpringBoot WEB项目两种发布和部署方式

    (1)通过WAR包

    (2)通过JAR包(官网推荐)

    1. WAR

      传统的部署方式:将项目打成war包,放入tomcat 的webapps目录下面,启动tomcat,即可访问。

      步骤1:在pom.xml文件中将jar修改为war【<packaging>war</packaging>】

      步骤2:在pom.xml文件中将配置文件添加tomcat模块【】  

    <!-- 不使用内置的tomcat  -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!-- 移除tomcat插件 -->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    <!-- 移除之后会报错,加入下面的依赖 -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
    </dependency>
    
    
    <!-- 使用内置的tomcat  -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
          <artifactId>provided</artifactId><!--仅用于编译和测试-->
    </dependency>

      步骤3:在main方法处的启动类基继承

       

      步骤4:在pom.xml点击右键选择Maven install,会在target文件夹中生成xxx.war包

    2. JAR

      步骤1:在pom.xml文件点击右键,选择“Maven install”,然后刷新target文件夹,在target中会产生xxx.jar包。

      步骤2:然后在cmd终端输入代码:java -jar xxx.jar ,发布成功

      步骤3:在浏览器输入localhost等url进行访问

    3. JAR VS WAR

      

    4. 线上部署

    方式一:java -jar vodmanager.jar &           后台关闭后,服务不会中断

    方式二:nohup java -jar vodmanager.jar &  后台关闭后,服务不会中断,并且会把输出的文件信息写在当前目录下的nohup文件中。

    3. SpringBoot热部署三种方式

    springboot有3中热部署方式:
    1.使用springloaded配置pom.xml文件,使用mvn spring-boot:run启动
    2.使用springloaded本地加载启动,配置jvm参数   -javaagent:<jar包地址> -noverify
    3.使用devtools工具包,操作简单,但是每次需要重新部署

    第一种:使用springloaded配置pom.xml文件

    1. 原来的pom.xml文件中添加如下配置
    <build>
         <plugins>
              <plugin>
                   <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-maven-plugin</artifactId>
                   <dependencies>
                        <dependency>
                             <groupId>org.springframework</groupId>
                             <artifactId>springloaded</artifactId>
                             <version>1.2.6.RELEASE</version>
                        </dependency>
                   </dependencies>
              </plugin>
         </plugins>
    </build>
    复制代码

            注意:需要在spring-boot-maven-plugin中添加dependency

     
    2.启动方式变为maven启动:在项目的文件夹dos窗口输入命令mvn spring-boot:run
     
        注意:停止服务是只能使用ctrl+c, 如果设置后台启动,需要kill进程

    第二种:springloaded本地加载启动,配置jvm参数

    1.下载springloaded工具包到一个指定目录(或直接就用maven仓库地址了)
    2.在启动项目时,在jvm参数中输入命令
      -javaagent:D:Maven epositoryorgspringframeworkspringloaded1.2.6.RELEASEspringloaded-1.2.6.RELEASE.jar -noverify
     
    扩展: -javaagent:命令后面跟冒号,意思是在执行main方法之前执行特定代码
           -noverify 关闭java字节码校验功能

    第三种:使用devtools工具包

    1.在pom.xml中添加依赖
    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-devtools</artifactId>
         <optional>true</optional>
    </dependency>
    2.启动项目
     

    总结

    在开发测试环境下第三种可取,方便快捷
    在生产环境下,建议使用第二种,使用脚本启动

    抄录网址

    1. tomcat部署web应用的4种方法
    2. Spring Boot项目的两种发布方式
    3. 开发笔记9:SpringBoot打包部署的三种方式
    4. Spring-Boot启动方式,以及线上部署
  • 相关阅读:
    Overloaded的方法是否可以改变返回值的类型
    parseXXX的用法
    java的类型转换问题。int a = 123456;short b = (short)a;System.out.println(b);为什么结果是-7616?
    UVA 10405 Longest Common Subsequence(简单DP)
    POJ 1001 Exponentiation(大数处理)
    POJ 2318 TOYS(计算几何)(二分)
    POJ 1265 Area (计算几何)(Pick定理)
    POJ 3371 Flesch Reading Ease (模拟题)
    POJ 3687 Labeling Balls(拓扑序列)
    POJ 1094 Sorting It All Out(拓扑序列)
  • 原文地址:https://www.cnblogs.com/tuanz/p/11204971.html
Copyright © 2011-2022 走看看