一:热加载与热部署
    热部署的意思就是不用手动重启环境,修改类后,项目会自动重启。但是如果项目比较大,重启也需要耗时十几秒左右。
    热加载意为不需要重新启动,修改了什么文件就重新加载什么文件,可以做到1,2秒左右就能看到效果。所以更节省时间。
    但是二者是互有利弊。热部署的好处是,重新启动,不存在修改文件和整个环境不一致的情况,而且是任何修改都生效。但是这里的热加载却有限制。吾经过测试发现,至少在修改controller上方法的requestMapping时是不会马上生效。因为这个是在启动时就已经加载的,所以这也是热加载修改什么加载什么带来的必然结果。
 
二:热部署
    热部署网上有很多博客,基本可以说是四步。
 
    1)修改build为自动编译
    
 
 
2)允许运行时编译:alt+ctrl+shift+/ 调出Registry,选中运行时编译
 
3)添加pom依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
</dependency>
 
4)maven编译插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
这种方式就是修改后会自动重新启动,免去手工重启。并不能实现不重启而自动加载修改的类。
 
三:热加载
    要做到热加载需要两步。一是编译,二是加载。吾经过测试整理出以下:
    1)设置自动编译,见2.1
 
    2)设置运行运行时编译,见2.2
 
    3)设置手动“update”或者idea失去焦点时更新类与资源
 
 
4)以debug方式启动
 
    这样就能实现修改了类后,手动点击“update" 即idea下面的 刷新按钮,或者点开另外个程序,idea就会重新去加载更新的类。这时马上就能看到更新效果。(项目没有重启,但是会看到idea有一个刷新的动作)。这种方式的局限性前文已有说到。
    吾测试时,有以下几个坑。
    a)当不以debug方式启动时,设置允许自动编译后,就算反编译类,发现已经更改,就算去手动刷新(ctrl+F10)也不会起作用。我猜想是因为idea内置缓存的原因。所以必须以debug方式启动。
 
四:结尾
    正常的方式是,我们在开发一个功能后,才需要启动项目。或者debug方式去调试问题。至于说热部署和热加载,哪种更适合你的特殊需要,就格取所好吧!
 

最新文章

  1. memset中的sizeof
  2. HTML 标题&lt;h1&gt;-&lt;h6&gt;
  3. Android调用蓝牙打印机
  4. poj 3468 成段增减
  5. STL源码分析----神奇的 list 的 sort 算法实现
  6. 工厂方法模式(FACTORY METHOD)
  7. PMP考试--成本管理中常用的概念
  8. Sublime Text 前端开发常用扩展插件推荐
  9. 关于arm处理器 内存编址模式 与 字节对齐方式 (转)
  10. 【转】Android 应用测试总结
  11. PHP获取指定年份指定月份的天数
  12. Media Queries for Standard Devices
  13. springboot 1.5.2 thymeleaf 标签未关闭异常解决办法
  14. GrideSearchCV 优化算法参数
  15. Spring定时任务(一):SpringTask使用
  16. 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》
  17. Magento 目录基本介绍
  18. MySQL高级知识(四)——Explain
  19. 【推荐】使用Ultrapico Expresso学习正则表达式
  20. 【Maven】基础概念、仓库、构建与部属

热门文章

  1. iview实战 : 全屏去头去尾的弹窗
  2. Fastjson到了说再见的时候了
  3. presto 转换静态catlog为动态catlog
  4. WebApiClientCore简约调用百度AI接口
  5. vue的自定义指令。directive
  6. Python编程无师自通PDF高清完整版免费下载|百度网盘
  7. ath10k MAC地址
  8. Aliyun Linux2安装Docker
  9. animate动画基础
  10. Django学习路26_转换字符串大小写 upper,lower