Spring Boot2.0之热部署原理

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

原理: 实用类加载器(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修改的原因是 重启!

原文地址:https://www.cnblogs.com/toov5/p/9822288.html

时间: 2024-10-09 14:12:27

Spring Boot2.0之热部署原理的相关文章

Spring Boot2.0之 监控管理

Spring boot监控中心: 针对微服务的服务状态,服务器的内存变化(内存.线程.日志管理等)检测服务配置连接地址是否有用(有些懒加载的情况下,用的时候发现卧槽不能用)模拟访问,懒加载.统计有多少个bean(Spring 容器中的bean).统计Spring MVC 中@RequestMapping(统计接口数) Actuator监控应用(无界面,返回json格式) AdminUi底层使用Actuator监控应用,实现可视化界面 Actuator是spring boot的一个附加功能,可帮助

Intellij + Jrebel6.0.2 热部署 + 2步破解

Intellij + Jrebel6.0.2 热部署 + 2步破解 一:准备软件 1.Intellij IDEA 14 (官网下载.自行破解).搜索这个的想必都有自己的Intellij. 2.Jrebel6.0.2 官方插件.下载:http://download.csdn.net/detail/chenghuaying/8661131 3.Jrebel6.0.2破解插件.下载:http://download.csdn.net/detail/chenghuaying/8661153 二:具体操作步

Spring Boot2.0自定义配置文件使用

声明: spring boot 1.5 以后,ConfigurationProperties取消locations属性,因此采用PropertySource注解配合使用 根据Spring Boot2.0官方文档,PropertySource注解,只支持properties文件,因此排除 YAML配置 针对二,可考虑新建配置类,自行搜索,不再此次讨论范围 具体使用: 1.根目录下新建自定义配置文件夹与properties配置文件 example.name=tom example.wife=jerr

JAVA热部署原理

1.热部署是什么? 对于Java应用程序来说,热部署就是在运行时更新Java类文件. 2.热部署有什么用? 可以不重启应用的情况下,更新应用.举个例子,就像电脑可以在不重启的情况下,更换U盘. OSGI也正是因为它的模块化和热部署,才显得热门. 3.热部署的原理是什么? 想要知道热部署的原理,必须要了解java类的加载过程.一个java类文件到虚拟机里的对象,要经过如下过程. 首先通过java编译器,将java文件编译成class字节码,类加载器读取class字节码,再将类转化为实例,对实例ne

Spring boot 两种热部署方式 springloader 和 devtools

什么是热部署? 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用.在平时编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果要改变这样的方式,就需要用到热部署springloaded. 使用方式,在项目中的pom.xml中plugin里添加依赖: <dependencies> <!--springloaded hot deploy --> <dependency> <groupId>org.springframework&

【Spring】springloaded实现热部署

往往我们需要添加一个类, 或者添加一个类方法, 或者修改类的方法签名的时候, 需要重启服务器来让代码生效,无论是在测试环境还是生产环境, 都是个非常消耗时间的过程. 而使用了springloaded, 可以达到热部署的功能, 从而不必重启服务器,修改立马生效. 使用springloaded,只需要添加JVM的启动参数, 如下: -javaagent:C:/springloaded-1.2.0.RELEASE.jar -noverify 使用tomcat时, 也是修改JVM启动参数, 打开tomc

spring boot入门之——热部署

场景: 本地调试(频繁的启动/停止服务器) 线上发布(每次都需要启动/停止服务器) 优点: 无论本地还是线上,都适用 无需重启服务器,提高开发.调试效率:提升发布.运维效率,降低运维成本 java实现热部署有哪几种方式? 通过配置tomcat,直接把项目放在webapps里. 在tomcat\conf\server.xml中的<host></host>中添加<context debug="0" docBase="" path="

Spring Boot 五种热部署方式

[推荐]2019 Java 开发者跳槽指南.pdf(吐血整理)>>> 1.模板热部署 在SpringBoot中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下: Thymeleaf的配置: spring.thymeleaf.cache=false FreeMarker的配置: spring.freemarker.cache=false Groovy的配置: spr

Spring Boot2.0之 原理—创建内置Tomcat容器

前面所述的https://www.cnblogs.com/toov5/p/9823728.html 中的第一条先不赘述了,就是玩了maven 重点介绍后两条 首先内置Tomcat: SpringBoot中内置tomcat服务器 Java操作创建tomcat 我们点击pom中的 持续点击到 继续点击会发现: 这个依赖 为我所需~ 注意:Springboot2.0之后 Tomcat8.0以上版本 引入到自己的pom中(类似的还有其他的依赖包): <project xmlns="http://m