• 第十五章:Spring Boot 与 开发热部署


    一、热部署

      在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,我们希望不重启应用的情况下,程序可以自动部署(热部署)。有以下四种情况,如何能实现热部署。

    二、热部署方式

      1、模板引擎

        在Spring Boot中开发情况下禁用模板引擎的cache
        页面模板改变ctrl+F9可以重新编译当前页面并生效

      2、Spring Loaded

        Spring官方提供的热部署程序,实现修改类文件的热部署
        下载Spring Loaded(项目地址https://github.com/springprojects/spring-loaded

        添加运行时参数;

    -javaagent:C:/springloaded-1.2.5.RELEASE.jar –noverify

     

      3、JRebel

        收费的一个热部署软件,安装插件使用即可。

      4、Spring Boot Devtools (推荐)

        引入依赖:

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

        

        IDEA使用ctrl+F9
        或做一些小调整

    Intellij IEDA和Eclipse不同, Eclipse设置了自动编译之后,修改类它会自动编译,而IDEA在非RUN或DEBUG情况下才会自动编译(前提是你已经设置了Auto-Compile)。
    设置自动编译(settings-compiler-make project automatically)
    ctrl+shift+alt+/(maintenance)
    勾选compiler.automake.allow.when.app.running
    

      

    三、Devtools 使用

      1、pom.xml配置文件

    <?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/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.6.2</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.njf</groupId>
        <artifactId>spring-boot-15-deploy</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>spring-boot-15-deploy</name>
        <description>Demo project for Spring Boot</description>
        <properties>
            <java.version>1.8</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

      2、使用

      当对代码进行了修改后,按下 Ctrl+F9 就会进行编译并自动部署。

      

       可以看到每次修改完后就会进行热部署。

  • 相关阅读:
    多线程《三》进程与线程的区别
    多线程《二》开启线程的两种方式
    多线程《一》线程理论
    多进程《七》生产者消费者模型
    多进程《六》队列
    互斥锁与join
    多进程《五》互斥锁
    多进程《四》守护进程
    再度认识未来——2.11
    开始——2.10
  • 原文地址:https://www.cnblogs.com/niujifei/p/15779105.html
Copyright © 2020-2023  润新知