springboot热部署未生效怎么办

springboot热部署未生效怎么办

热部署:当发现程序修改时自动启动应用程序。

spring boot为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。

原理

使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

配置方式


    org.springframework.boot
    spring-boot-devtools
    true

    ...


    org.springframework.boot
    spring-boot-maven-plugin
    
        
            org.springframework
            springloaded
            1.2.7.RELEASE
        
    
    true

如何生效

假如用mvn spring-boot:run 方式启动应用,修改完java文件就会立即生效

为什么热部署明明配置正确还未生效

假如用debug 方式启动应用,需要手动重新编译整个项目,或者被修改的文件
比如idea下点击菜单 build > build XXX 或者选中文件 build >recompile “${your java file}”

springboot热部署未生效怎么办_第1张图片

笔者环境

mac pro+idea2016
jdk1.8+maven3+spring4 + springboot1.5.7.RELEASE+springloaded1.2.7.RELEASE

PS 完整pom配置

"1.0" encoding="UTF-8"?>
"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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4.0.0

    com.XXX
    XX
    1.0.0
    jar

    bi
    Demo project for Spring Boot

    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.7.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
            org.springframework.boot
            spring-boot-starter-aop
        


        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.1.1
        

        
            org.apache.commons
            commons-lang3
            3.4
        

        
        
            mysql
            mysql-connector-java
            5.1.36
        

        
        
            com.googlecode.log4jdbc
            log4jdbc
            1.2
        

        
            com.alibaba
            fastjson
            1.2.12
        

        
            org.apache.poi
            poi-ooxml
            3.5-FINAL
        


        
            org.springframework.boot
            spring-boot-devtools
            true
        
    

    
        XX
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                        org.springframework
                        springloaded
                        1.2.7.RELEASE
                    
                
                true
            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                
                    true
                
            
        
    



你可能感兴趣的:(spring)