Spring Boot 打包与热部署的操作方法

 更新时间:2020年11月17日 09:59:50   作者:弓长日含  
这篇文章主要介绍了Spring Boot 打包与热部署的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

热部署

Spring Boot提供了DevTool。直接在pom.xml文件中添加配置。

1.添加依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-devtools</artifactId>
</dependency>

2.在maven插件依赖中新增

<build>
	<plugins>
	 	<plugin>
			<groupId>org.springframework.boot</groupId>
		 <artifactId>spring-boot-maven-plugin</artifactId>
		 <!--添加fork-->
		 <configuration>
		 	<fork>true</fork>
		 </configuration>
	 </plugin>
	</plugins>
</build>

提示:再使用Idea快捷创建Spring Boot项目时可以勾选Spring Boot DevTools选择即可。

3.修改Idea设置

在这里插入图片描述
在这里插入图片描述

注意:这里要用Idea的debug启动,debug启动,debug启动。

如果不是前后端分离的项目,在配置文件中添加配置,spring.thymeleaf.cache=false关闭页面缓存。

jar包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选中maven,点击运行。
控制台输出日志:

在这里插入图片描述

打的jar包在项目目录的target目录中。

Windows下运行:

在这里插入图片描述

进入jar包目录,执行 java -jar 包名

在这里插入图片描述

运行成功。

扩展:
如果打好了jar包,配置文件中的一些参数需要修改。如果不想重新打jar包。可以重新把一份新的application.yml配置文件与打好的jar包放在同级目录。重新运行即可。

验证:
从上述日志中看到,端口为80。这里我重新复制一份配置文件,将端口改为8088。重新运行查看端口。

在这里插入图片描述
在这里插入图片描述

这里是在Windows下运行,在Linux下运行差不多,
我们先把jar包,配置文件(可选)上传至服务器,运行。

在这里插入图片描述

啊咧,80端口已经被项目占用了。

在这里插入图片描述

重新上传一份8088端口的配置文件。

在这里插入图片描述

验证成功以后,还有一个问题,无论是Windows窗口还是Linux窗口运行的jar包,窗口关闭以后,项目进程就结束了。但是你窗口不会一直开着。

在Linux下我们需要后台运行。

nohup java -jar springboot-demo2-0.0.1-SNAPSHOT.jar >> srpingboot.log &

解释:后台运行SpringBoot的jar包,并将运行java -jar springboot-demo2-0.0.1-SNAPSHOT.jar命令的输出日志追加输出到springboot.log文件中。

划重点:

  • >> 输出到文件,追加操作。
  • > 输出到文件,覆盖操作。
  • & 在Linux命令的末尾加上一个 & 号,将这个任务放到后台去执行
  • nohup no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
  • 这些都是一些Linux命令,可以自己敲一敲测试即可。

后台运行,如何关闭?直接kill。kill -9 pid(运行项目进程的PID)

war包

SpringBoot不推荐打war包,但是你说我头铁,非要打war包咧?可!

修改pom.xml

<!-- 将jar改成war,如果没有,则添加-->
<packaging>war</packaging>
<!-- 新增 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-tomcat</artifactId>
	<!-- 打包运行时,排除 -->
	<scope>provided</scope>
</dependency>

注意这两处的节点位置。

修改启动类

此时启动类中的main方法已经失效了。以测试项目为例

@SpringBootApplication
@MapperScan("com.demo.dao")
public class SpringbootDemo2Application extends SpringBootServletInitializer {

 @Override
 protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  return builder.sources(SpringbootDemo2Application.class);
 }

 public static void main(String[] args) {
  SpringApplication.run(SpringbootDemo2Application.class, args);
 }

}

继承SpringBootServletInitializer类并重写configure方法。注意方法体的书写。

接下来就继续使用maven打包即可。参数上面打jar的使用maven方式。

打好的war包是需要放在容器中执行的,简单的就放在Tomcat中的webapps目录中。启动Tomcat即可。

在这里插入图片描述

war包已经打好了,直接丢Tomcat了。

在这里插入图片描述

启动Tomcat即可。

但是在实际开发中,还是不推荐打war包。

到此这篇关于Spring Boot 打包与热部署的操作方法的文章就介绍到这了,更多相关Spring Boot 打包与热部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java使用Hex编码解码实现Aes加密解密功能示例

    java使用Hex编码解码实现Aes加密解密功能示例

    这篇文章主要介绍了java使用Hex编码解码实现Aes加密解密功能,结合完整实例形式分析了Aes加密解密功能的定义与使用方法,需要的朋友可以参考下
    2017-01-01
  • Spring Cloud灰度部署实现过程详解

    Spring Cloud灰度部署实现过程详解

    这篇文章主要为大家介绍了Spring Cloud灰度部署实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 用intellij Idea加载eclipse的maven项目全流程(图文)

    用intellij Idea加载eclipse的maven项目全流程(图文)

    这篇文章主要介绍了用intellij Idea加载eclipse的maven项目全流程(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • ElasticSearch 动态映射实战详解

    ElasticSearch 动态映射实战详解

    这篇文章主要为大家介绍了ElasticSearch 动态映射实战详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 关于java关键字this和super的区别和理解

    关于java关键字this和super的区别和理解

    这篇文章主要给大家介绍了关于java关键字this和super的区别和理解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java聊天室之实现运行服务器与等待客户端连接

    Java聊天室之实现运行服务器与等待客户端连接

    这篇文章主要为大家详细介绍了Java简易聊天室之实现运行服务器程序与等待客户端程序连接功能,文中的示例代码讲解详细,需要的可以了解一下
    2022-10-10
  • IDEA反编译出整个jar包源码

    IDEA反编译出整个jar包源码

    InteliJ IDEA默认带反编译插件,那么如何把反编译的jar包整体导出java源码来?本文就来介绍一下,感兴趣的可以了解下
    2021-05-05
  • 一篇文章彻底理解SpringIOC、DI

    一篇文章彻底理解SpringIOC、DI

    这篇文章主要给大家介绍了关于对SpringIOC、DI的理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Spring boot 基本部署方式

    Spring boot 基本部署方式

    SpringBoot部署也是非常简单,需要把打包输出的包由jar改为war。具体部署方式大家参考下本文
    2017-08-08
  • Java利用Guava Retry实现重处理

    Java利用Guava Retry实现重处理

    guava-retrying是谷歌的Guava库的一个小扩展,允许为任意函数调用创建可配置的重试策略,比如与正常运行时间不稳定的远程服务对话的函数调用。本文将利用其实现重处理,感兴趣的可以了解一下
    2022-08-08

最新评论