springboot2.0之热部署原理

toov5      2022-04-16     335

关键词:

所谓的热部署:比如项目的热部署,就是在应用程序在不停止的情况下,实现新的部署

原理: 实用类加载器(classloader重新读取字节码文件到jvm内存)

如何纯手写一个热部署功能:

 1、监听 class文件是否发生改变  版本号、修改时间  作对比

 2、如果发生改变就用classloader进行重新读取

 

热部署要是用在生产环境,性能很差了。不安全!

热部署用在本地开发(eclipse idea)用来提高效率

Spring Boot使用 devtools做热部署

有些工具是有热部署的功能的

修改完代码---》然后按保存--》访问时候其实会重启

 

 访问引发重启!

这样读到的都是新的:

package com.toov5.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import lombok.extern.slf4j.Slf4j;

@RestController
@Slf4j
public class IndexController {
    @Value("${name}")
    private String name;

    @RequestMapping("/index")
    public String index() {
        String result = "修改啊来啊";
        log.info("result:{}", result);
        return result + name;
    }

}

访问:

 

 devtools修改的原因是 重启!

 

1.springboot之热部署

1.springboot热部署1.1.springloadedspringloaded可以实现修改类文件的热部署.下载地址:springloaded安装单击RunConfigurations...在Arguments标签页的vmarguments中填入如下内容,注意下面指定的springloaded路径:-javaagent:F:sortingDatamavenRepositoriesMa 查看详情

springboot初始教程之热部署(代码片段)

SpringBoot初始教程之热部署(五)1.介绍SpringBoot提供了一个maven插件来支持热部署spring-boot-devtools,仅仅是在开发环境中使用,如果已经打包了就无法使用。<dependencies><dependency><groupId>org.springframework.boot</groupId>& 查看详情

springboot初始教程之热部署(代码片段)

SpringBoot初始教程之热部署(五)1.介绍SpringBoot提供了一个maven插件来支持热部署spring-boot-devtools,仅仅是在开发环境中使用,如果已经打包了就无法使用。<dependencies><dependency><groupId>org.springframework.boot</groupId>& 查看详情

springbootz之热部署

在项目的pom.xml文件添加如下两段<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><version>1.5.7.RELEASE</version><opt 查看详情

nginx之热部署(代码片段)

nginx作为一个反向代理、负载均衡服务器,必须具备高可用的特点,因此nginx支持热部署。nginx的热部署和其并发模型有着密不可分的关系。说白了,就是因为master进程的关系。当通知ngnix重读配置文件的时候,master进程会进行语... 查看详情

springboot2.0:使用docker部署springboot

...行部署。一个简单SpringBoot项目在 pom.xml 中,使用SpringBoot2.0相关依赖<parent> <groupId& 查看详情

springboot2.0:使用docker部署springboot

...对项目进行部署。一个简单SpringBoot项目在pom.xml中,使用SpringBoot2.0相关依赖<parent><groupId>org.spring 查看详情

springboot2.0.0.m7生产环境部署

springboot生产环境注意事项1.去除不需要的jar开发工具jar:spring-boot-devtools监控一定要做好权限控制或者去除控制jar:spring-boot-starter-actuatordruid的监控swagger的接口3、打包,跳过测试maven:cleanpackage-Dmaven.test.skip=true脚本#!/bin/sh## ... 查看详情

使用docker构建部署运行springboot应用《springboot2.0极简教程》

使用Docker构建部署运行SpringBoot应用《SpringBoot2.0极简教程》image.pngimage.pngimage.pngimage.png。。。image.pngimage.pngimage.png。。。image.pngimage.pngimage.pngimage.png 查看详情

springboot2.0:使用docker部署springboot开源软件云收

只需三步即可部署开源项目云收藏,打造专属个人的收藏系统,就是这么简单!云收藏项目已经开源2年多了,作为当初刚开始学习SpringBoot的练手项目,使用了很多当时很新的技术,现在看来其实很多新技术是没有必要使用的,... 查看详情

springboot2.0之原理—创建内置tomcat容器

前面所述的https://www.cnblogs.com/toov5/p/9823728.html中的第一条先不赘述了,就是玩了maven重点介绍后两条首先内置Tomcat: SpringBoot中内置tomcat服务器  Java操作创建tomcat 我们点击pom中的持续点击到    继续点... 查看详情

零基础快速入门springboot2.0教程

一、SpringBoot2.x使用Dev-tool热部署简介:介绍什么是热部署,使用springboot结合dev-tool工具,快速加载启动应用官方地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-devtools核心依赖包:<dependency 查看详情

springboot2.0之纯手写框架

框架部分重点在于实现原理,懂原理!废话不多说,动手干起来!SpringMVC程序入口?没有配置文件,Spring容器是如何加载?回顾我们之前搭建SpringBoot项目使用的pom引入的依赖需要parent,其作用是支持依赖快速整合框架不需要写... 查看详情

springboot2.0最新版相关技术

https://gitee.com/hejr.cn.com/SpringBoot2.0_2019/tree/master SpringBoot2.0最新版相关技术学习,该项目主要是提供给正在学习SpringBoot的小伙伴,包括整合Freemarker,JSP等web页面,以及数据访问,事务管理,日志管理,缓存(Ehcache,Redis)技术... 查看详情

springboot2.0部署阿里云服务器(nginx+域名+ssl)供http和https访问

  从下午1点弄到晚上11点,花了10个小时,但是总算是弄出来了,先写下来供自己以后查阅。1)首先你要有一个阿里云服务器,我用的是Centos7学生认证,10元/月,很便宜也很好用。2)购买了域名,首年9元,很划算。域名... 查看详情

springboot2.0不容错过的新特性webflux响应式编程

第1章课程介绍课程介绍及导学第2章函数式编程和lambda表达式本章介绍函数式编程的概念,和lambda表达式的基础语法,并分析了惰性求值的应用和实现。最后同意反编译字节码,重点剖析了lambda表达式的底层实现原理第3章Stream流... 查看详情

springboot2.0之@async实现异步调用

 补充一个知识点:lombok底层原理使用的是:字节码技术ASM修改字节码文件,生成比如类似于get()set()方法一定要在开发工具安装在编译时候修改字节码文件(底层使用字节码技术),线上环境使用编译好的文件 下面... 查看详情

springboot2.0:重磅springboot2.0权威发布

就在昨天SpringBoot2.0.0.RELEASE正式发布,今天早上在发布SpringBoot2.0的时候还出现一个小插曲,将SpringBoot2.0同步到Maven仓库的时候出现了错误,然后SpringBoot官方又赶紧把GitHub上发布的v2.0.0.RELEASE版本进行了撤回。到了下午将问题修复... 查看详情