SpringBoot 远程发布 远程调试

提前说下,WebFlux玩不起来,或者说没找到方法

远程发布

加上依赖

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-devtoolsartifactId>
    <optional>trueoptional>
dependency>

plugin配置

<plugin>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-maven-pluginartifactId>
    <configuration>
        <excludeDevtools>falseexcludeDevtools>
    configuration>
plugin>

application.yml
secret随便改

spring:
  devtools:
    restart:
      enabled: false
    remote:
      secret: 123456

随便写个controller做测试:

@RestController
public class CustomController {
    @GetMapping
    public Map get() {
        Map map = new TreeMap();
        map.put("hello", "hugeo");
        return map;
    }

}

服务打包发布到本地能访问的服务器上去,我这里是发布到vmware虚拟机里面,注意启动参数:
-java -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -jar app.jar --server.port=8080
8080是服务端口,8000是远程调试的端口,后面会用到
启动日志如下:
SpringBoot 远程发布 远程调试_第1张图片

调试配置:
SpringBoot 远程发布 远程调试_第2张图片
本地启动刚配置好的这个玩意:
SpringBoot 远程发布 远程调试_第3张图片
把controller返回值改一下,然后ctrl+shift+F9重新编译,之后本地的控制台会打印:
2019-02-11 14:56:48.045 INFO 175820 --- [ File Watcher] o.s.b.d.r.c.ClassPathChangeUploader : Uploaded 1 class resource
然后到服务端看一下,已经收到新的类并自动重启了:
SpringBoot 远程发布 远程调试_第4张图片

远程调试

这个就简单了,idea配置一个Remote类型的debug:
SpringBoot 远程发布 远程调试_第5张图片
启动,打断点,尝试调服务器的接口,会进本地的断点

你可能感兴趣的:(Java,springboot)