SpringBoot热部署详解

本文阅读 3 分钟
首页 代码,Java 正文

img

🍁博客主页:👉不会压弯的小飞侠
✨欢迎关注:👉点赞👍收藏⭐留言✒
✨系列专栏:👉SpringBoot专栏(每日更新)
✨如果觉得博主的文章还不错的话,请三连支持一下博主。
🔥欢迎大佬指正,一起 学习!一起加油!
在这里插入图片描述

热部署,就是不需要停掉服务,可以线上改,改完立马生效。

因为不启用热部署时每次更改java数据都要重启服务器影响开发效率。

🔥关于热部署:

  • 重启(Restart)∶自定义开发代码,包含类、页面、配置文件等,加载位置restart类加载器
  • 重载(ReLoad) : jar包,加载位置base类加载器

🔥导入坐标 - 启动开发者工具

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

🔥修改数据

方便测试是否启用了热部署: 详细代码: 点击直接查看

@GetMapping("{id}")
    public R getById(@PathVariable Integer id){ 
        System.out.println("host deploy...");
        System.out.println("host deploy...");
        System.out.println("host deploy...");
        return new R(true, bookService.getById(id));
    }

🔥build project

也可以使用快捷键:ctrl + shift9
在这里插入图片描述

🔥测试

img

自动启动热部署步骤:

如果想要某些文件或者文件夹不参与热部署的配置需要在application.xml中配置以下信息:

# 设置不参与热部署的文件或文件夹
devtools:
  restart:
    exclude: static/**,public/**,config/application.yml

🔥方式一

在application.yml中配置:

# 设置不参与热部署的文件或文件夹
devtools:
  restart:
    exclude: static/**,public/**,config/application.yml enabled: false

这种形式关闭热部署,优先级别太低,可能关闭之后,别人又从别的配置文件或者其他地方给打开了(在优先级别高的地方),从而导致热部署在此启动.

🔥方式二

🔥在优先级别高的地方禁用热部署。

  • 属性加载优先顺序:由低到高
    - 1 Default properties (specified by setting springApplication.setDefaultproperties ) - 2 GPropertySsource annotations on your @Cconfiguration classes. Please note that such property sources are not added to theEnvironment until the application context is being refreshed.This is too late to configure certain properties such as logging. and spring.main. which are read before refresh begins. - 3 Config data (such as application.properties files) - 4 A RandomValuePropertySource that has properties only in random.* . - 5 OS environment variables. - 6 Java System properties ( system.getProperties() ). - 7 JNDl attributes from java:comp/env . - 8 ServletContext init parameters. - 9 Servletconfig init parameters. - 10 Properties from spRING_APpLICATION_soN (inline JSON embedded in an environment variable or system property). - 11 Command line arguments. - 12 properties attribute on your tests.Available on gSpringRootTest and the test annotations for testing a particular slice ofyour application. - 13 @TestPropertySource annotations on your tests. - 14 Devtools global settings properties in the SHN’E .config/spring-boot directory when devtools ,s.ati

🔥application.yml配置文件在优先级为3的地方,可以在优先级为6的地方禁用热部署功能:

package com.jkj;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootHotDeployApplication { 
    public static void main(String[] args) { 
        System.setProperty("spring.devtools.restart.enabled","false");
        SpringApplication.run(SpringbootHotDeployApplication.class);
    }

}

img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_43514330/article/details/125801592
-- 展开阅读全文 --
安全面试之XSS(跨站脚本攻击)
« 上一篇 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复