SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客

沙海
沙海
沙海
1018
文章
2
评论
2021年4月28日12:06:22
评论
1 2935字阅读9分47秒
摘要

SpringBoot War包形式部署到外部Tomcat

SpringBoot War包形式部署到外部Tomcat

SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客

闪耀的瞬间
2018-09-28 15:36:57
SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客
22380

SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客

收藏

30

分类专栏:
spring boot
java
SpringBoot 项目开发
文章标签:
springboot

版权

SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客
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中 SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客
  • WEB-INF目录如下,lib是项目引用的架包的目录,classes是java类编译成class文件和静态资源的地方 SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客
  • classes目录如下,com中按项目架包路径存放,templates中存放html,application.properties是配置文件,如果有css与js会创建一个static目录,里面包含css、js文件夹,分别放css与js文件,供templates目录中的html文件引用 SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客

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>
12345678910111213141516171819202122232425

修改启动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);
	}
}
123456789101112

创建一个Controller,与html,项目发布后提供访问 SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客 然后通过 maven 打包,执行mvn命令或使用 IDE 提供的操作,如果是 IDEA 工具,可以通过 Maven Projects - Lifecycle - 双击package,则可在项目中生成一个 target 目录,里面有 war 文件,并解压 SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客 SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客

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:\project\springboot\war\target\war-0.0.1">
         </Context>
     </Host>
  </Engine>
</Service>
12345678910

启动tomcat,访问 http://localhost:8088/ SpringBoot War包形式部署到外部Tomcat_zhuyu19911016520-CSDN博客

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

源码下载 https://download.csdn.net/download/zhuyu19911016520/10693497

继续阅读
weinxin
资源分享QQ群
本站是一个IT技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: