idea自动加载html、js而无需重启进程的操作

遇到一些单体架构的项目时,由于前后端没有分离导致每一次动手前端都需要重启进程运行项目,非常费时费力,因此只需要在idea中配置几项就能解决这个问题:

1、快捷键Ctrl + Alt + S打开设置面板,build-compiler---勾选 Build project automatically选项(2016版本的idea有可能是:make project automatically)

2、快捷键Ctrl + Shift + A查找registry命令: 在查找到的registry命令通过鼠标双击或敲回车键,在弹出的面板中找到并勾选compiler.automake.allow.when.app.running选项

补充知识:解决IDEA下SpringBoot devtools热启动热部署、修改html或js代码还要重新启动服务问题

其实并不难,百度上面一大把,但是按照他们这样做还是不能实现,因为我一开始接触这个问题,用的idea springboot框架修改资源还要重新启动很麻烦,我就想到有没有不需要这样修改立马生效,本人以前也是搞全栈开发。也没想过像他们讲的用jrebel,一开始百度

开发IDE: Intellij IDEA 2018.3.5 SpringBoot:2.0.3.RELEASE

热部署

大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的Class文件,这个文件里记录着和代码等对应的各种信息,然后Class文件将被虚拟机的ClassLoader加载。

而热部署正是利用了这个特点,它监听到如果有Class文件改动了,就会创建一个新的ClaassLoader进行加载该文件,经过一系列的过程,最终将结果呈现在我们眼前。

类加载机制

Java中的类经过编译器可以把代码编译为存储字节码的Class文件,该Class文件存储了各种信息,最终要加载到虚拟机中运行使用。

类加载机制(摘自《深入理解 Java 虚拟机》)

虚拟机把描述类的数据从Class文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。

spring-boot-devtools 自动重启(热部署)

在激活了开发者工具后,ClassPath里对文件做任何修改都会触发应用程序重启。为了让重启的速度够快,不会修改的类(第三方JAR包)都加载到了基础类加载器里,而应用程序的代码则会加载到一个单独的重启类加载器里。检测到变更时,只会重启类加载 器重启。

有些ClassPath里的资源变更后不需要重启应用程序。像Thymeleaf这样的视图模板可以直接编辑,不用重启。在/static 或 /public里的静态资源也不用重启应用程序,所以Spring Boot开发者工具在重启时排除掉了如下目录:/META-INF/resources、/resources、/static、/public、/templates。

一、POM集成

  <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <optional>true</optional>
  </dependency>

二、勾选Build project automatically

下面这一步,我自己测试发现是不需要设置的。但是有网友说需要设置才生效,这个看个人情况,酌情设置。

三、IDEA 设置为在程序运行过程中,依然允许自动编译

操作: ctrl + shift + alt + /,选择Registry,勾选勾上 Compiler autoMake allow when app running

四、spring boot 热部署下面的running Application Update Policies这两个要设置,最重要一步骤,少了还是没作用。网上很多少了这一步骤,研究半天才发现

执行完上述的操作步骤后,我们的devtools热部署集成就完成了。

以上这篇idea自动加载html、js而无需重启进程的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Idea配置热部署的实现步骤

    一.概念 热部署就是正在运行状态的应用,修改了他的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效.热部署为了解决的问题有两个, 一是在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率:二是生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用. 二.Idea开启热部署 本篇文章主要是介绍Idea这款开发工具的热部署,而用Idea的人大多数都是用来开发java程序,当前流行的java程序主要有两种,第一种是传统的Web应用,依赖

  • IDEA+JRebel实现全自动热部署的方法步骤

    简述:JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效.IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,特别影响开发效率.目前对于IDEA热部署最好的解决方案就是安装JRebel插件. 下载安装JRebel IDEA 依次打开 File | Settings | Plugins → 搜索JRebel进行安装并重启IDEA 激活JRebel 方法一:JRebel是一款收费的服务,可以通过官网进行激活码购买. 方法二

  • IDEA 2020 无法启动的解决办法(启动崩盘)附IDEA 2020 新功能

    今天早上看到 IDEA 可以升级新版本,想着体验一下新功能,点击升级,然后全部项目工程无法打开. 报错信息如下: Cannot execute command No project found to open file in 在项目窗口选择项目工程也不行,出现闪退现象. 网上搜索了一把,没有找到具体的解决办法,没办法只能靠自己. 突然想到可以看一下 IDEA 相关日志,看下是否有什么有用的报错信息. 如果使用 toolbox 可以在 IDEA 设置中,找到如下按钮快速打开. 若没有安装 tool

  • IDEA 2020.1打开时闪退的问题及解决方法(完美解决方法)

    推荐阅读: 支持Java 14!Java开发工具IntelliJ IDEA 2020.1稳定版发布 https://www.jb51.net/softjc/720187.html IntelliJ IDEA 2020.1正式发布,你要的Almost都在这(推荐) https://www.jb51.net/softjc/720170.html java 开发工具IntelliJ IDEA 2020.1 正式发布,15 项重大特性.官方支持中文了(推荐) https://www.jb51.net/n

  • idea自动加载html、js而无需重启进程的操作

    遇到一些单体架构的项目时,由于前后端没有分离导致每一次动手前端都需要重启进程运行项目,非常费时费力,因此只需要在idea中配置几项就能解决这个问题: 1.快捷键Ctrl + Alt + S打开设置面板,build-compiler---勾选 Build project automatically选项(2016版本的idea有可能是:make project automatically) 2.快捷键Ctrl + Shift + A查找registry命令: 在查找到的registry命令通过鼠标双

  • js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法

    页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空间,到底部时,会动态加载剩余的说说或者是日志 今天我们就来看看他们的实现思路和js控制动态加载的代码 下面的代码主要是控制滚动条下拉时的加载事件的 在下面代码说明出,写上你的操作即可,无论是加载图片还是加载记录数据  都可以 别忘了引用jquery类库 $(window).scroll(functi

  • JS通过ajax + 多列布局 + 自动加载实现瀑布流效果

    Ajax •说明:本文效果是无限加载的,意思就是你一直滚动就会一直加载图片出现,通过鼠标滚动距离来判断的,所以不是说的那种加载一次就停了的那种,那种demo下次我会再做一次 css部分用的是html5+css3的新属性,图片会自动添加到每行的最顶端上去,而不是用js去判断.去除了一些js计算的麻烦. css部分: * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #352323 url(images/a

  • AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法

    本文实例讲述了AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法.分享给大家供大家参考,具体如下: 接着前面那篇<AngularJS使用ng-app自动加载bootstrap框架问题分析>,现在我们看下如何使用带属性值的ng-app命令,让ng-app自动加载我们自定义的模块作为根模块. <!DOCTYPE html> <html> <head> <script src="angular.js">&l

  • AngularJS框架的ng-app指令与自动加载实现方法分析

    本文实例分析了AngularJS框架的ng-app指令与自动加载实现方法.分享给大家供大家参考,具体如下: ng-app是angular的一个指令,代表一个angular应用(也叫模块).使用ng-app或ng-app=""来标记一个DOM结点,让框架会自动加载.也就是说,ng-app是可以带属性值的.如果想要实现自动加载,那么就不能让ng-app带有属性值. <html> <body ng-app> <div>div1:{{1+3*2}}</

  • AngularJS使用ng-app自动加载bootstrap框架问题分析

    本文实例分析了AngularJS使用ng-app自动加载bootstrap框架问题.分享给大家供大家参考,具体如下: 前面的文章<AngularJS框架的ng-app指令与自动加载实现方法分析> 提出了使用ng-app指令的情况.之前觉得出现第4和第5种情况很奇怪,因为只看到了现象,没有看到本质.JS错误,最直观的表现方式就是:弹出一个非常不友好的JS错误窗口.当脚本出现了未捕获的错误,浏览器才会弹出错误提示.还有一种比较隐晦的表示:在浏览器的控制台输出错误信息.这提示我们:使用JS框架的时候

  • 基于AngularJS实现页面滚动到底自动加载数据的功能

    要实现这个功能,可以通过 https://github.com/sroze/ngInfiniteScroll 这个第三方控件来实现.步骤如下: 1. 下载ng-infinite-scroll.js程序 http://sroze.github.io/ngInfiniteScroll/ 目前版本是1.0.0 2. 如果你是用的jQuery2.0以上版本,还需要修改ng-infinite-scroll.js程序,将所有的将所有的$window.xxx改为$(window).xxx, elem.xxx改

  • JavaScript实现图片自动加载的瀑布流效果

    先给大家展示下效果图: 向下滑动网页的时候能够自动加载图片并显示. 盛放图片的盒子模型如下: <div class="box"> <div class="box_img"> <img src="Img/8.jpg"> </div> </div> 设置img-width为150px,然后box_img添加内边距和阴影效果,box的外边距为0,添加内边距.盒子的宽度是由img-width和边

  • 基于javascript实现浏览器滚动条快到底部时自动加载数据

    废话不多说了,直接给大家贴js代码了. <!DOCTYPE html> <html> <head> <script src="jquery-...js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function () { var range = ; /

  • jQuery实现的自动加载页面功能示例

    本文实例讲述了jQuery实现的自动加载页面功能.分享给大家供大家参考,具体如下: demo.html: <li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"><p>---------------</p></li> <li style="opacity:0;-moz-opacity: 0;filter: alpha(opacity=0);"

随机推荐