参考文档

  • 官网
  • 百度一遍别人写的
    • 官网第一反应是英文,所以百度了篇文章
    • 但是除了 Remote Update 这一步有点不明白之外,还是官方文档更细

视频演示

spring远程更新代码.mp4

警告官方

  • 原文

    The Spring Boot developer tools are not limited to local development. You can also use several features when running applications remotely. Remote support is opt-in as enabling it can be a security risk. It should only be enabled when running on a trusted network or when secured with SSL. If neither of these options is available to you, you should not use DevTools’ remote support. You should never enable support on a production deployment.

  • 有道

    Spring Boot开发工具并不局限于本地开发。在远程运行应用程序时,您还可以使用几个特性。远程支持是可选择的,因为启用它可能是一个安全风险。只有在可信网络上运行或使用SSL进行安全保护时,才应该启用它。如果这两个选项都不提供给您,您就不应该使用DevTools的远程支持。永远不要在生产部署中启用支持。

使用

图文可能不对,因为我懒得在走一遍截图了。不是很明白的看上面视频把

添加依赖这个好像可以不要

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-devtools</artifactId>
  4. <scope>runtime</scope>
  5. <optional>true</optional>
  6. </dependency>

设置插件

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-maven-plugin</artifactId>
  6. <configuration>
  7. <excludeDevtools>false</excludeDevtools>
  8. </configuration>
  9. </plugin>
  10. </plugins>
  11. </build>

写点测试代码后打包放服务运行

注意:

  • 如果在一台服务器上测试,要注意端口别冲突
  • 不同服务器注意防火墙
  1. package io.tan.remote.controller;
  2. import org.springframework.web.bind.annotation.GetMapping;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. /**
  6. * 测试远程
  7. *
  8. * @author tn
  9. * @version 1
  10. * @date 2021/6/10 22:06
  11. */
  12. @RestController
  13. @RequestMapping("/remote")
  14. public class RemoteController {
  15. /**
  16. * 测试接口1
  17. * @return
  18. */
  19. @GetMapping("1")
  20. public String function1(){
  21. return "原始接口";
  22. }
  23. }
  1. mvn clean package
  2. java -jar .\RemoteSpringApplication-0.0.1-SNAPSHOT.jar --server.port=8081

测试接口是否通畅

image.png

启动本地服务进行远程新增修改的预备设置

  • 修改启动类
    • Use org.springframework.boot.devtools.RemoteSpringApplication as the main class.
    • Add https://myapp.cfapps.io to the Program arguments (or whatever your remote URL is).
    • image.png

启动本地后进行修改或者新增代码

注意启动前,线上线下代码要保持一致

  1. package io.tan.remote.controller;
  2. import org.springframework.web.bind.annotation.GetMapping;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. /**
  6. * 测试远程
  7. *
  8. * @author tn
  9. * @version 1
  10. * @date 2021/6/10 22:06
  11. */
  12. @RestController
  13. @RequestMapping("/remote")
  14. public class RemoteController {
  15. /**
  16. * 测试接口1
  17. * @return
  18. */
  19. @GetMapping("1")
  20. public String function1(){
  21. return "原始接口";
  22. }
  23. /**
  24. * 测试接口2
  25. * @return
  26. */
  27. @GetMapping("2")
  28. public String function2(){
  29. return "测试新增一个接口";
  30. }
  31. }

远程更新代码

更新前先测试下新增的接口在远程上面是否能访问

  • 使用 mvn compile 重新编译即为远程更新新的代码

image.png

  • 测试新的接口能不能顺利访问

image.png