SpringBoot2.0整合热部署Devtools工具

作者:神秘网友 发布时间:2020-10-23 23:44:30

SpringBoot2.0整合热部署Devtools工具

SpringBoot2.0整合热部署Devtools工具

热部署原理分析:
使用类加载器(classloader重新读取字节码文件到jvm内存)如何纯手写一个热部署功能:
1.监听class文件是否有发生改变–版本号或者修改时间
2.如果class文件发生改变的,就是用classloader进行重新读取。

热部署可以用于在生产环境?
1.理论上可以那么做(不推荐)
2.本地开发–为了本地测试能够提高效率

一、项目文件目录
SpringBoot2.0整合热部署Devtools工具
二、配置文件内容
1.AppDevTools

package com;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AppDevTools {

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

2.IndexController

package com.zhongguancun.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class IndexController {

	// 有些工具会自带热部署功能
	@RequestMapping("/indexDev")
	public String indexDev() {
		String result = "springboot 2.0-V4";
		return result;
	}
	
	// 热部署类加载器 自带工具热部署功能--- springmvc装配 devtools 是采用重启机制
//	@RequestMapping("/MyindexDev")
//	public String MyindexDev() {
//		String result = "springboot 2.0-V5";
//		return result;
//	}
	
}

3.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zhongguancun</groupId>
  <artifactId>zhongguancun_devtools</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.0.RELEASE</version>
	</parent>
	<dependencies>
		<!-- SpringBoot web 核心组件 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
			<scope>true</scope>
		</dependency>
		
	</dependencies>	
</project>

三、效果演示
启动项目
SpringBoot2.0整合热部署Devtools工具
访问:http://localhost:8080/indexDev
SpringBoot2.0整合热部署Devtools工具
后台打开注释(注意观察 打开注释后项目会自动重启 说明Devtools成功整合)
SpringBoot2.0整合热部署Devtools工具
访问:http://localhost:8080/MyindexDev

SpringBoot2.0整合热部署Devtools工具
完成!

  1. devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的。
  2. devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现(这里注意不同的模板配置不一样)

SpringBoot2.0整合热部署Devtools工具相关教程

  1. Solr部署教程

    Solr部署教程 前提环境: jdk1.8 下载:https://archive.apache.org/dist/lucene/solr/5.2.1/ 解压缩,重命名 tar -zxvf solr-5.2.1.tar.gz mv solr-5.2.1 solr 修改配置文件: vi solr.in.sh----------ZK_HOST=ha1:2181,ha2:2181,ha3:2181,ha4:2181SOLR_HOST=h

  2. jenkins 自动化部署(后台)

    jenkins 自动化部署(后台) 包的话需要自己到官网下载https://www.jenkins.io/download/ 安装jenkins rpm -ivh jenkins-2.190.3-1.1.noarch.rpm 修改Jenkins配置 vim /etc/sysconfig/jenkins 修改内容如下: JENKINS_USER=root JENKINS_PORT=10008 启动Jenki

  3. SpringBoot 教程 | 第一篇: SpringBoot项目整合Swagger2(Spring

    SpringBoot 教程 | 第一篇: SpringBoot项目整合Swagger2(SpringBoot+Swagger2)(2.6.1版本) 一、项目添加Swagger pom依赖 dependency groupIdio.springfox/groupId artifactIdspringfox-swagger2/artifactId version2.6.1/version/dependencydependency grou

  4. idea热部署插件JRebel安装部署并激活,告别spring devtools

    idea热部署插件JRebel安装部署并激活,告别spring devtools 打开idea的File-settings-plugins-marketplace-搜索JRebel 点击Install安装,我已经安装了,所以显示的是Installed. 安装完成之后重启idea,一般idea插件安装完之后这个位置有个restart重启按钮 重启

  5. Atlas安装部署

    Atlas安装部署 环境要求: JDK8+Hadoop2+Maven3+Zookeeper3+Hbase2+Solr5 这些组件都要安装。 下载:http://atlas.apache.org/#/Downloads 不要下载最新版的,否则编译会出问题,下载稳定版的。 编译 上传,解压,编译。 tar -zxvf apache-atlas-2.0.0-source

  6. springboot整合swagger小栗子

    springboot整合swagger小栗子 ?xml version=1.0 encoding=UTF-8?project xmlns=http://maven.apache.org/POM/4.0.0 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xs

  7. k8s1.18三节点集群部署+docker容器安装

    k8s1.18三节点集群部署+docker容器安装 k8s1.18三节点+docker容器安装 建三台虚拟机,三台虚拟机的信息如下: 注:建议IP地址是自己配的静态地址,因为动态的话改变网络地址就会改变,要重新配置(静态ip配置可参考https://blog.csdn.net/weixin_44764814/art

  8. Fabric安装部署记录

    Fabric安装部署记录 Fabric v1.4.0安装部署 一、前期准备 编号 工具 版本号 1 cURL 最新版(7.63.0) 2 Docker 17.06.2-ce及其以上版本 3 Docker Compose 1.14.0及其以上版本 4 Go 1.11.x cURL最新版安装 # 下载最新版的cURL并将其解压到指定目录(此处以/opt