### Spring Boot 学习笔记之热部署与代码变更检测 #### 概述 Spring Boot 是一个基于 Spring 的框架,旨在简化新 Spring 应用程序的初始设置和开发过程。Spring Boot 的目标是允许开发者“只是运行”,即尽可能减少配置和其他形式的样板代码。在实际项目开发过程中,开发人员经常会遇到修改代码后需要重新启动应用才能看到效果的问题,这不仅增加了开发时间成本,也降低了开发效率。因此,热部署和代码变更检测成为了提高开发效率的关键技术之一。 #### 热部署与代码变更检测方案 热部署和代码变更检测是开发者在开发过程中非常重要的功能。它们可以帮助开发者在修改代码后无需重新启动应用即可看到结果。本文将详细介绍如何在 Spring Boot 项目中实现热部署和代码变更检测。 #### 实现方案 1. **使用 springloaded 进行热部署** - 在 `pom.xml` 文件中添加以下依赖配置: ```xml org.springframework.boot spring-boot-maven-plugin org.springframework springloaded 1.2.4.RELEASE repackage exec ``` - 下载 `spring-loaded-1.2.4.RELEASE.jar` 文件并放置于项目的 lib 目录下,同时设置 IDEA 的 run 参数中的 VM 参数为 `-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar-noverify`。这样,在使用 `run as Java Application` 方式启动时,可以实现热部署。 2. **使用 spring-boot-devtools 进行热部署** - 添加 `spring-boot-devtools` 依赖包至 `pom.xml` 文件中: ```xml org.springframework.boot spring-boot-devtools true true ``` - 添加 `spring-boot-maven-plugin` 配置至 `pom.xml` 文件的 `` 节点中,并设置 `` 属性为 `true`,确保 devtools 能够正常工作: ```xml org.springframework.boot spring-boot-maven-plugin true ``` - 使用 spring-boot-devtools 的核心原理是利用两个 ClassLoader 分别加载静态类和可变类。当代码发生变更时,会抛弃旧的 restartClassLoader 并重新创建一个新的,从而实现快速重启。 #### 测试与验证 - 修改任何类文件并保存,应用程序应自动重启。 - 修改配置文件并保存,应用程序同样应自动重启。 - 修改页面模板文件(例如 Thymeleaf)并保存,页面应自动刷新。为了实现这一点,可以在 `application.properties` 文件中设置 `spring.thymeleaf.cache=false`。 #### 问题及解决 针对某些特定情况,如添加新的方法后无法进行热部署,可以通过使用 `spring-boot-devtools` 来解决这一问题。这是因为 `spring-boot-devtools` 采用了更为高级的机制来监控代码的变化,并在必要时重新启动应用,以确保所有更改都能及时生效。 #### 总结 热部署和代码变更检测是提高开发效率的有效手段。通过在 Spring Boot 项目中集成 `springloaded` 或 `spring-boot-devtools`,可以显著提升开发体验,使开发者能够专注于业务逻辑的实现而非频繁的重启过程。希望本文能帮助到正在学习或使用 Spring Boot 的开发者们。
2026-06-04 12:50:47 941KB springBoot
1
简要介绍:内容为听宋浩老师的线性代数课程时的手写笔记,扫描成了pdf文件。包含了行列式、矩阵、向量、线性方程组、特征值与特征向量、二次型这几个部分。 适用人群:可以帮助较为快速浏览地线性代数的课程内容,适合应付考试的大学生食用。
2023-11-12 20:50:33 32.7MB 线性代数
1
Spark-Core文档是本人经三年总结笔记汇总而来,对于自我学习Spark核心基础知识非常方便,资料中例举完善,内容丰富。具体目录如下: 目录 第一章 Spark简介与计算模型 3 1 What is Spark 3 2 Spark简介 3 3 Spark历史 4 4 BDAS生态系统 4 5 Spark与Hadoop的差异 5 6 Spark的适用场景 6 7 Spark成功案例 6 第二章 Spark开发环境搭建 8 1 Spark运行模式 8 2 Spark环境搭建 8 2.1Scala的安装 8 2.2Spark的单节点配置 9 2.3Spark-Standalone集群配置 9 2.4Spark-on-Yarn模式配置 12 2.5Spark-on-Mesos模式配置 13 2.6Hive-on-Spark配置 13 第三章 Spark计算模型 15 1 RDD编程 15 1.1弹性分布式数据集RDD 15 1.2构建RDD对象 15 2RDD操作 15 2.1将函数传递给Spark 16 2.2了解闭包 16 2.3Pair RDD模型 17 2.4Spark常见转换操作 18 2.5Spark常见行动操作 20 2.6RDD持久化操作 21 2.7注意事项 23 2.7并行度调优 24 2.8分区方式 25 3Examle:PageRank 27 第四章 Spark编程进阶 29 1共享变量 29 1.1累加器 30 1.2广播变量 31 2基于分区进行操作 32 3与外部程序间的管道 33 4数值RDD的操作 34 5 Spark Shuffle机制 34 第五章 Spark调优与调试 39 1开发调优: 40 1.1调优概述 40 1.2原则一:避免创建重复的RDD 40 1.3原则二:尽可能复用同一个RDD 41 1.4原则三:对多次使用的RDD进行持久化 42 1.5原则四:尽量避免使用shuffle类算子 43 1.6原则五:使用map-side预聚合的shuffle操作 44 1.7原则六:使用高性能的算子 45 1.8原则七:广播大变量 46 1.9原则八:使用Kryo优化序列化性能 47 1.10原则九:优化数据结构 48 2资源调优 48 2.1调优概述 48 2.2 Spark作业基本运行原理 49 2.3资源参数调优 50 第六章 Spark架构和工作机制 52 1 Spark架构 52 1.1 Spark架构组件简介 52 1.2 Spark架构图 54 2 Spark工作机制 54 2.1 Spark作业基本概念 54 2.2 Spark程序与作业概念映射 55 2.3 Spark作业运行流程 55 3 Spark工作原理 55 3.1 作业调度简介 55 3.2 Application调度 56 3.3 Job调度 56 3.4 Tasks延时调度 56 第七章 Spark运行原理 57 1 Spark运行基本流程 57 2 Spark在不同集群中的运行架构 58 2.1 Spark on Standalone运行过程 59 2.2 Spark on YARN运行过程 60
2023-09-26 13:01:48 6.54MB Spark 初学者 大数据 资料归档
1
Git学习笔记,网址:https://learngitbranching.js.org/?locale=zh_CN
2023-02-28 11:18:29 480KB git
1
个人整理的JavaWeb入门笔记,附带项目代码和原理讲解。知识体系比较全,现有的JavaWeb开发技术都是在此基础上进行调整的
2023-02-24 22:14:04 4.49MB Java Tomcat 网站开发 Servlet
1
全套java笔记整理,侧边栏目录结构方便查看,纯手工整理。达内笔记整理。 已整理成带侧边栏目录的网页结构,方便复习大纲和跳转查看。大部分都带有笔记代码。 (默认设置为深珊瑚蓝色调,不喜欢可以把配置文件里的纯白配色改名替换)
2023-02-19 17:48:01 813KB java笔记 java复习 达内java笔记
1
/****************** * linux内核的时间管理 ******************/ (1)内核中的时间概念 时间管理在linux内核中占有非常重要的作用。 相对于事件驱动而言,内核中有大量函数是基于时间驱动的。 有些函数是周期执行的,比如每10毫秒刷新一次屏幕; 有些函数是推后一定时间执行的,比如内核在500毫秒后执行某项任务。 要区分: *绝对时间和相对时间 *周期性产生的事件和推迟执行的事件 周期性事件是由系统系统定时器驱动的 (2)HZ值 内核必须在硬件定时器的帮助下才能计算和管理时间。 定时器产生中断的频率称为节拍率(tick rate)。 在内核
2023-02-05 23:18:13 103KB IN linux定时器 linux系统
1
B站上胡科大计算机网络笔记整理 来自BloothOfYouth的github库
2023-01-04 19:18:01 352.71MB 计算机网络
1
计算机专业考研兰大,操作系统复习时整理的笔记,算是比较全面的
2022-12-31 11:04:07 8.87MB 操作系统 兰州大学 计算机考研
1
对上课所学知识的整理,汇总,大家可以复习作为参考,增加对知识点的掌握。
2022-11-30 14:00:14 565KB ccna ccnp 笔记
1