zoukankan      html  css  js  c++  java
  • SpringBoot War包形式部署到外部Tomcat

    https://blog.csdn.net/zhuyu19911016520/article/details/82884903

    1.SpringBoot 项目打包时能打成 .jar 与 .war包文件,打成 .jar 的最多,使用 java -jar xx.jar 就可以启动,而 .war 可以部署到tomcat的 webapps 中,随tomcat的启动而启动。
    2.打成什么文件进行部署与项目业务有关,就像提供 rest 服务的项目需要打包成 jar文件,用命令运行很方便。。。而有大量css、js、html,且需要经常改动的项目,打成 war 包去运行比较方便,因为改动静态资源可以直接覆盖,很快看到改动后的效果,这是 jar 包不能比的(举个‘栗’子:项目打成 jar 包运行,一段时间后,前端要对其中某几个页面样式进行改动,使其更美观,那么改动几个css、html后,需要重新打成一个新的 jar 包,上传服务器并运行,这种改动频繁时很不友好,文件大时上传服务器很耗时,那么 war包就能免去这种烦恼,只要覆盖几个css与html即可)
    3. war 包的本质是 IDE 工具把项目文件已某种结构进行编译与排列java类会编译成class的文件,html会放到目录中), 把 war 包文件解压后,里面的文件如下
    • springboot 项目的war解压后,里面有3个文件夹,META-INF中有个文件记录了项目文件的引用、启动类、编译jdk版本等信息,java、html等项目文件放入WEB-INF中
      在这里插入图片描述
    • WEB-INF目录如下,lib是项目引用的架包的目录,classes是java类编译成class文件和静态资源的地方
      在这里插入图片描述
    • classes目录如下,com中按项目架包路径存放,templates中存放html,application.properties是配置文件,如果有css与js会创建一个static目录,里面包含css、js文件夹,分别放css与js文件,供templates目录中的html文件引用
      在这里插入图片描述
    4.SpringBoot War项目

    在pom.xml中,maven配置如下

    <packaging>war</packaging>
    
    <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>
    	<version>3.1.0</version>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-tomcat</artifactId>
    	<scope>provided</scope>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    修改启动Application文件继承SpringBootServletInitializer,实现configure方法

    @SpringBootApplication
    public class WarApplication extends SpringBootServletInitializer {
    
    	public static void main(String[] args) {
    		SpringApplication.run(WarApplication.class, args);
    	}
    
    	@Override
    	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    		return builder.sources(WarApplication.class);
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    创建一个Controller,与html,项目发布后提供访问
    在这里插入图片描述
    然后通过 maven 打包,执行mvn命令或使用 IDE 提供的操作,如果是 IDEA 工具,可以通过 Maven Projects - Lifecycle - 双击package,则可在项目中生成一个 target 目录,里面有 war 文件,并解压
    在这里插入图片描述
    在这里插入图片描述

    5.使用外部Tomcat运行该 war 文件,有两种方式,1把 war 文件直接丢到 tomcat的webapps目录,启动tomcat,2使用tomcat - conf - server.xml配置,使用target目录中war包解压的文件夹为项目地址进行部署
    <Service name="testWar">  
      <Connector port="8088"    maxHttpHeaderSize="8192"  maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="true" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"  URIEncoding="utf-8"/>   
      <Engine name="hnswzy" defaultHost="localhost">
         <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
         <Host name="localhost" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 
             <Context path="" reloadable="true" docBase="D:projectspringbootwar	argetwar-0.0.1">
             </Context>
         </Host>
      </Engine>
    </Service>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    启动tomcat,访问 http://localhost:8088/
    在这里插入图片描述

    可以随意改动项目中的css、js、html等文件后,刷新页面可看到最新效果,而 jar文件改动后需要重新打包,上传服务器,并重新发布,比较繁琐

  • 相关阅读:
    (原)Lazarus 异构平台下多层架构思路、DataSet转换核心代码
    (学)新版动态表单研发,阶段成果3
    (学) 如何将 Oracle 序列 重置 清零 How to reset an Oracle sequence
    (学)XtraReport WebService Print 报错
    (原)三星 i6410 刷机 短信 无法 保存 解决 办法
    (原) Devexpress 汉化包 制作工具、测试程序
    linux下网络配置
    apache自带ab.exe小工具使用小结
    Yii::app()用法小结
    PDO使用小结
  • 原文地址:https://www.cnblogs.com/zhoading/p/13500179.html
Copyright © 2011-2022 走看看