SpringBoot---热部署和发布

1.介绍

就是通过热部署技术,实现本地代码修改后,不需要重新启动服务器,提高开发、调试效率,提升发布、运维效率。

2.热部署和热加载

(1)不重启服务器编译/部署项目,并基于java类加载器

热部署:不用重启服务器,重新部署项目(所有的),直接重新加载整个应用,会释放内存,所有相对来说会比热加载慢一些。

热加载:在运行时重新加载class(修改过的),通过类时间戳的改变,而加载类。相对快一些。

(2)使用场景

热部署:更多的时在生成环境中使用,提高开发效率。

热加载:更多是在开发环境中使用的

3.原理解析

(1)类加载过程

(2)类加载的5个阶段

(3)java加载器特点

1、由AppClass Loader(系统类加载器)开始加载指定的类;

2、类加载器将加载任务交给其父类,如果父类找不到,再由自己去加载,即双亲委派方式。

3.java类的热部署方式

(1)类的热加载--继承classLoader,重新dinfClass方法

 

(2)配置Tomcat

4.springBoot项目构建过程解析

本质与Spring项目是无区别的

pom.xml

Application.property在resource下

5.SpringBoot热部署

(1)Spring Loaded

 

(2)Spring-boot-devtools

直接添加依赖在pom.xml中

6.springBoot项目发布方式

https://blog.csdn.net/yickreesuen/article/details/79092933

(1)构建Jar包,命令行运行程序

pom中是jar   maven install (打成jar包);拷贝目录,命令行切换到项目目录所在的目录下,启动 java 

(2)构建War包,发布到tomcat上

pom中是war ;引入tomcat依赖;改启动的类(入口)继承SpringBootServletInitializer;重写configure();maven install (打成war包);加入到本地tomcat的webapps中,启动tomcat;访问时,要加上新生生成的那个名

Spring Boot为开发者提供了一个非常便捷的热部署机制,可以在不重启应用程序的情况下更新代码。以下是几种实现热部署的方式: 1.使用Spring Boot DevTools插件:Spring Boot DevTools是一个开发工具包,其中包括了许多实用的工具,其中就包含了热部署的功能。只需要在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> ``` 使用DevTools时,需要注意以下几点: - 由于DevTools会监听文件修改事件,所以它会在项目启动时创建一个新的类加载器。这样,每次修改后,类都会被重新加载。 - DevTools只能在开发阶段使用,所以不要将它打包到正式发布的应用程序中。 2.使用JRebel插件:JRebel是一款商业插件,可以实现热部署。与DevTools类似,它也是通过监听文件修改事件来实现的。需要在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.zeroturnaround</groupId> <artifactId>jrebel-boot-starter</artifactId> <version>1.0.0</version> </dependency> ``` 3.使用Spring Loaded插件:Spring Loaded是一个免费的插件,可以实现热部署。它也是通过监听文件修改事件来实现的。需要在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.8.RELEASE</version> </dependency> ``` 以上三种方式都可以实现Spring Boot的热部署,可以根据项目的实际情况选择适合自己的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值