一、构建springBoot项目
新建的项目需引入web依赖支持,方便我们通过http调用
pom.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.javapc</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>javapc</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 引入web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- springboot打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.javapc.demo.JavapcApplication</mainClass>
<!-- <skip>true</skip> -->
<!-- 添加远程调试配置 -->
<!-- <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n</jvmArguments> -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
application.yml文件如下:
server:
port: 8080
servlet:
context-path: /
新建一个方法:
package com.javapc.demo.test;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@PostMapping("/test")
public String test(String context){
System.out.println("context: " + context);
return "访问成功,并返回:" + context;
}
}
使用postman测试一下:
二、远程调试
1. 配置项目并打包
修改pom.xml文件,将“添加远程调试配置”的注释解开
<jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n</jvmArguments>
说明:
添加该属性后,项目打包后允许远程DEUG。
-Xdebug
:告知JVM以DEBUG模式工作
-Xrunjdwp
:(Java debug wire protocol) 告知JVM使用运行调试环境。该参数同时包含了一系列的调试选项
ransport
:指定数据的传送方式,dt_socket是指使用ocket模式
address
:调试服务器的端口号,客户端用来连接服务器的端口号
server=y/n
:VM 是否需要作为调试服务器执行
suspend=y/n
:是否在调试客户端建立连接之后启动 VM
项目打包:
在target目录下找到打好的jar包:
运行jar包:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar demo-0.0.1-SNAPSHOT.jar
项目开启远程调试后,启动日志中会打定这句话,监听socket 5005端口。
2、idea远程调试jar
-
配置idea
上图中的port
就是,参数重设置的监听端口5005 -
准备工作一就绪,开始远程调试。
在test方法上点个断点,然后以DEBG模式启动项目,见下图:
运行后如下图:
通过postman发送请求
idea将请求拦截:
可以看到由于请求被idea监听到,并通过断点阻断,命令行并未打印内容,见下图:
idea放开断点:
二、附件📎
https://download.csdn.net/download/qq_39774931/20371702