SpringBoot2.0整合热部署Devtools工具
SpringBoot2.0整合热部署Devtools工具
SpringBoot2.0整合热部署Devtools工具热部署原理分析:
使用类加载器(classloader重新读取字节码文件到jvm内存)如何纯手写一个热部署功能:
1.监听class文件是否有发生改变–版本号或者修改时间
2.如果class文件发生改变的,就是用classloader进行重新读取。
热部署可以用于在生产环境?
1.理论上可以那么做(不推荐)
2.本地开发–为了本地测试能够提高效率
一、项目文件目录
二、配置文件内容
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>
三、效果演示
启动项目
访问:http://localhost:8080/indexDev
后台打开注释(注意观察 打开注释后项目会自动重启 说明Devtools成功整合)
访问:http://localhost:8080/MyindexDev
完成!
- devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的。
- devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现(这里注意不同的模板配置不一样)
SpringBoot2.0整合热部署Devtools工具相关教程
-
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
-
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
-
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
-
idea热部署插件JRebel安装部署并激活,告别spring devtools
idea热部署插件JRebel安装部署并激活,告别spring devtools 打开idea的File-settings-plugins-marketplace-搜索JRebel 点击Install安装,我已经安装了,所以显示的是Installed. 安装完成之后重启idea,一般idea插件安装完之后这个位置有个restart重启按钮 重启
-
Atlas安装部署
Atlas安装部署 环境要求: JDK8+Hadoop2+Maven3+Zookeeper3+Hbase2+Solr5 这些组件都要安装。 下载:http://atlas.apache.org/#/Downloads 不要下载最新版的,否则编译会出问题,下载稳定版的。 编译 上传,解压,编译。 tar -zxvf apache-atlas-2.0.0-source
-
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
-
k8s1.18三节点集群部署+docker容器安装
k8s1.18三节点集群部署+docker容器安装 k8s1.18三节点+docker容器安装 建三台虚拟机,三台虚拟机的信息如下: 注:建议IP地址是自己配的静态地址,因为动态的话改变网络地址就会改变,要重新配置(静态ip配置可参考https://blog.csdn.net/weixin_44764814/art
-
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