zoukankan      html  css  js  c++  java
  • springboot学习(八)热部署和打包

    热部署

    Spring Boot提供了一个开发者工具,可以监控classpath路径上的文件。只要源码或配置文件发生修改,Spring Boot应用可以自动重启,添加依赖

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

    在Intellij Idea下,还需要手动进行一些设置。首先到Files→Settings→Compiler,将Build project automatically一项勾选.

    连击两次Shift键,输入Registry后找到Registry...回车,直接输入running找到complier.automake.allow.when.app.running并勾选即可,最后重启一下项目,之后对项目代码的任何更改都将被侦知并自动重新加载,无需手动重启项目

    Spring Boot 中热部署最最关键的原理就是两个不同的 classloader:

    • base classloader

    • restart classloader

    其中 base classloader 用来加载那些不会变化的类,例如各种第三方依赖,而 restart classloader 则用来加载那些会发生变化的类,例如你自己写的代码。Spring Boot 中热部署的原理就是当代码发生变化时,base classloader 不变,而 restart classloader 则会被废弃,被另一个新的 restart classloader 代替。在整个过程中,因为只重新加载了变化的类,所以启动速度要被重启快。

    但是使用 devtools ,默认情况下当静态资源发生变化时,并不会触发项目重启。

    打包

    Spring Boot自带一个spring-boot-maven-plugin插件用来打包,我们只需要在pom.xml中加入以下配置

        <build>
           <plugins>
               <plugin>
                   <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-maven-plugin</artifactId>
               </plugin>
           </plugins>
       </build>

    无需任何配置,Spring Boot的这款插件会自动定位应用程序的入口Class,执行Maven命令即可打包,会生成两个文件:

    • .jar.original,是Maven标准打包插件打的jar包,它只包含我们自己的Class文件,不包含依赖

    • .jar,是Spring Boot打包插件创建的,包含依赖的jar和class文件,可以直接运行 java -jar xxx.jar

     

     

  • 相关阅读:
    最短路径之spfa
    最短路径之Bellman-Ford——解决负权边
    最短路径之Floyd-Warshall算法
    图上最短路径问题
    它们其实都是图(二分图)
    记忆化结果再利用 进一步探讨递推关系
    leetcode 376. 摆动序列 java
    leetcode 368. 最大整除子集 java
    leetcode 96. 不同的二叉搜索树 java
    leetcode 454. 四数相加 II java
  • 原文地址:https://www.cnblogs.com/yjh1995/p/14164448.html
Copyright © 2011-2022 走看看