• Intellij IDEA 4种配置热部署的方法【转】【补】


    热加载

    热加载可以使代码修改后无须重启服务器,就可以加载更改的代码。(其实分java和非java代码,本处可以让java代码立即生效且不重启服务)

    第1种:修改服务器配置,使得IDEA窗口失去焦点时,更新类和资源

    菜单Run -> EditConfiguration , 然后配置指定服务器下,右侧server标签下on frame deactivation = Update classes and resource。

    优点:简单

    缺点:基于JVM提供的热加载仅支持方法块内代码修改,只有debug模式下,并且是在idea失去焦点时才会出发热加载

    热部署

    热部署修改代码后,需要重启服务器,才能加载更改的java代码。(本处,可以让java代码和非java代码,都生效,但必须重启服务)

    第2种:使用springloaded.jar包

    a. 下载jar包,github:https://github.com/spring-projects/spring-loaded

    b. 启动应用时添加VM启动参数:-javaagent:/home/lkqm/.m2/repository/org/springframework/springloaded/1.2.7.RELEASE/springloaded-1.2.7.RELEASE.jar -noverify

    优点:对Spring系列框架支持好(不含Spring boot), 支持 成员级别的修改(增删改方法、字段、注解),支持对枚举值集。使用这种形式加载springloaded经过测试,延迟不算高, java代码修改后控制台看不到重启信息却也能生效.

    缺点:与优点相对

     

     

     更简单的方式

    maven插件中使用pom.xml配置springloaded插件的依赖

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <dependencies>
                        <dependency>
                            <groupId>org.springframework</groupId>
                            <artifactId>springloaded</artifactId>
                            <version>1.2.6.RELEASE</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
    
        </build>

    然后在终端使用命令行 mvn spring-boot:run启动,而通过Application.run方式启动的会无效,因为通过应用程序启动时,已经绕开了Maven插件机制。

    第3种:使用spring-boot-devtools提供的开发者工具

     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <!-- 有人说optional一定要配置成true才有效, 但我调试完感觉不加optional也有效 -->
                <optional>true</optional> 
     </dependency>

    优点:简单,支持Spring-boot项目,支持成员级别的修改热部署。

    缺点:只支持spring-boot项目。

    相关: application.properties配置

    #热部署默认会重启
    spring.devtools.restart.enabled=true
    #添加那个目录的文件需要restart
    spring.devtools.restart.additional-paths=src/main/java
    #排除那个目录的文件不需要restart
    spring.devtools.restart.exclude=static/**,public/**

    第4种:使用Jrebel插件实现热部署(该插件14天免费试用)

    在线安装:菜单File -> Setting -> Plugin, 点击右侧底部 Browse repositories, 弹出框顶部输入:JReble for Intellij, 选中安装即可。

    优点:强大,对各类框架支持,并且提供IDE插件的方式。

    后3种方法是基于类加载机制来实现热加载的,因此你修改完成代码后必须重新编译当前代码,才能触发热部署。

    idea操作

    Eclipse默认就支持了自动编译,而在Intellij IDEA中默认是关闭了自动编译的,可以按照如下2步设置开启:

    • IDEA开启项目自动编译,进入设置,Build,Execut, Deployment -> Compiler 勾选中左侧的Build Project automatically

     

    • IDEA开启项目运行时自动make, ctrl + shift + alt + / 命令:registry -> 勾选compiler.automake.allow.when.app.running

     

    参考自:

    Intellij IDEA 4种配置热部署的方法==>https://www.cnblogs.com/a8457013/p/7866536.html

    其它参考

    spring boot修改代码后无需重启设置,在开发时实现热部署==>https://blog.csdn.net/testcs_dn/article/details/79929886

    SpringBoot入门-2(两种热部署方式)==>https://www.cnblogs.com/xswz/p/7350562.html

     

  • 相关阅读:
    asp.net超强日历
    闲话多线程的创建
    一些应该熟记于心的jQuery函数和技巧
    jQuery选择符总结
    使用OQL+SQLMAP解决ORM多表复杂的查询问题
    同样的SQL语句在查询分析器执行很快,但是网站上执行超时的诡异问题
    "开门待客"还是“送货上门”?
    使用ASP.NET MVC2+PDF.NET 构建一个简单的新闻管理程序
    使用PDF.NET数据开发框架的实体操作语言OQL构造复杂查询条件
    “批量少次”还是“少量多次”邮件通信系统效率浅谈
  • 原文地址:https://www.cnblogs.com/whatlonelytear/p/10370767.html
Copyright © 2020-2023  润新知