Spring-boot 热部署

本文介绍了三种实现SpringBoot热部署的方法:使用spring-boot:run、runas–javaapplication结合springloaded以及spring-boot-devtools。通过这些方法可以在开发过程中实现代码修改后的即时生效,提高开发效率。
  • 为什么需要springboot热部署?
    在编写代码的时候,如果我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了。那么如何解决这个问题呢?那就是springloaded。

第一种方式:

  • 使用spring-boot:run
    在pom.xml文件添加依赖包:
    然后将项目run sa –> maven build –> spring-boot:run
<build>  
    <plugins>   
    <!-- springboot 热部署 --> 
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin </artifactId>
        <dependencies>
            <!--springloaded hot deploy -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>springloaded</artifactId>
                <version>1.2.4.RELEASE</version>
            </dependency>
        </dependencies>
    </plugin>
    </plugins>
    </build>    

使用这种方式呢,我就遇到了错误。
大概的意思就是端口被占用。

java.net.BindException: Address already in use: bind

解决办法:
关闭任务管理器中还在运行的javaw.exe。

这里写图片描述

第二种方式:

  • 使用 run as – java application

把spring-loader-1.2.4.RELEASE.jar下载下来,放到项目的lib目录中,然后把myeclipse的run as参数里VM参数设置为:
-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar -noverify
然后启动就可以了,这样在run as的时候,也能进行热部署。

这里写图片描述

如果还是热部署无效的话,尝试换高版本的springload。

第三种方法:

  • spring-boot-devtools

pom.xml直接添加依赖:

<dependency>  
     <groupId>org.springframework.boot</groupId>  
     <artifactId>spring-boot-devtools</artifactId>  
     <optional>true</optional>  
</dependency>  
### 配置 Spring Boot DevTools 实现热部署 为了使 Spring Boot 应用程序能够支持热部署,需按照如下方式配置: #### Maven 或 Gradle 中引入依赖 在项目的构建文件中加入 `spring-boot-devtools` 依赖项。对于基于Maven的项目,在pom.xml 文件内添加以下片段[^4]: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> ``` 而对于采用Gradle作为构建工具的情况,则应在build.gradle里声明相应的依赖关系。 #### 修改 application.properties 或者 application.yml 文件 为了让应用程序响应代码更改而自动重启,可以在application.properties (或 .yml) 文件中指定相关属性来启用此功能: ```properties # 开启热部署 spring.devtools.restart.enabled=true # 设置额外监控路径,默认为 classpath 下方所有资源;这里指定了 Java 源码所在位置 spring.devtools.restart.additional-paths=src/main/java # 排除不需要触发重启操作的特定目录,比如静态资源文件夹 spring.devtools.restart.exclude=static/** ``` 另外还可以调整其他一些参数以优化性能表现,例如关闭模板引擎缓存以便即时反映视图层的变化[^5]: ```properties # 页面不产生缓存,及时更新 spring.thymeleaf.cache=false # 启用内容协商策略处理静态资源版本管理 spring.resources.chain.strategy.content.enabled=true spring.resources.chain.strategy.content.paths=/\** ``` #### 调整 IDE 设置 如果使用的是 IntelliJ IDEA 进行开发工作,那么还需要做一些必要的环境设定才能让热部署正常运作。具体来说就是确保编译器选项中的 "Build project automatically" 已被激活,并且开启了 Power Save Mode 关闭状态[^3]。 完成上述步骤之后,每当源代码发生变动时,Spring Boot DevTools 就会检测到这些变化并立即执行相应动作——无论是重新加载受影响的部分还是完全重启整个应用实例,从而大大提高了迭代速度和调试效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值