Springboot程序开启远程DEBUG

news2024/11/18 2:57:51

一、远程debug的原理


Spring Boot程序远程debug的原理主要是通过在启动时指定JVM参数来启用远程调试模式,并在调试器中连接到程序所在的调试地址,从而实现对程序的远程调试。

具体步骤如下:

  1. 在运行Spring Boot程序时,在启动命令的JVM参数中指定远程调试的相关配置,比如指定调试端口和允许远程连接等参数,例如:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7005
  2. 启动Spring Boot程序后,程序会监听指定的调试端口,并等待调试器连接。
  3. 在调试器中创建一个远程调试配置,配置连接到程序所在的服务器和指定的调试端口。
  4. 连接成功后,调试器就可以通过远程连接对程序进行调试,包括设置断点、查看变量值等操作。

Tips: 需要注意的是,为了避免远程调试带来的安全风险,建议在生产环境中禁用远程调试功能。


二、Springboot程序开启远程Debug


  1. 应用配置(Application Config)中选择编辑配置(Edit Configuration)
    在这里插入图片描述

  2. 然后选择添加新配置(Add New Configuration)
    在这里插入图片描述

  3. 在展开的列表中选择远程 JVM 调试(Remote JVM Debug),点击确定
    在这里插入图片描述


  1. 根据图中示例配置。名称可以随意起;主机地址即远程的公网IP地址;端口是指的远程Debug监听端口,而非该项目的服务端口;JDK选择项目开发对应的JDK版本号;远程JVM的命令行参数在配置完成以后拷贝下来;模块类路径即选择主程序包路径。
    在这里插入图片描述

  2. 利用Maven将项目打包 mvn clean package,放到远程主机上,携带刚刚拷贝的启动参数启动项目,例如:

    java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7005 -jar ******.jar
    

  1. 启动本地调试,监听远程端口
    在这里插入图片描述
    当控制台打印“已连接到目标”,说明本地项目已经开始监听远程端口,此时可以开始远程Debug了
    在这里插入图片描述

  1. 在本地代码打上断点,使用postman访问远程接口
    在这里插入图片描述
    在这里插入图片描述

  1. 观察到Debug信息进入到本地,说明配置成功了。
    在这里插入图片描述

三、注意事项

  • 在生产环境中不建议开启远程debug: 开启远程debug会增加程序的额外开销,包括网络开销和调试信息的生成,还会造成接口阻塞。
  • 调试信息的保护: 调试信息中可能包含敏感信息,如密码、私钥等,需要仔细过滤或禁止传递这些信息。特别是在使用公共网络时,要注意调试信息的保护和加密。
  • 调试客户端和服务端的一致性: 调试客户端和服务端必须保持一致,包括调试器的版本、JDK的版本和框架的版本等。否则可能会导致不可预期的问题。
  • 调试范围的限制: 开启远程debug时,要明确授权访问权,限制调试的范围,避免潜在的安全风险。
  • 资源占用问题: 调试信息的生成和传输可能会占用大量的资源,包括CPU和内存等,如果不加注意可能会影响程序的正常运行

综上所述,使用远程debug需要慎重考虑,仅在必要时才应该使用,并且要严格控制权限和范围,避免潜在的安全风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

强化学习DDPG:Deep Deterministic Policy Gradient解读

1. DDPG DDPG方法相比于传统的PG算法,主要有三点改进: A. off-policy策略 传统PG算法一般是采用on-policy方法,其将整体强化学习过程分为多个epoch,在每个epoch完成一次policy模型和value模型更新,同时在每轮epoch都…

【Java高级语法】(五)字符串操作类String:几乎每天都会用到的String类,你还在踩坑吗?~

Java高级语法详解之字符串操作类String :one: 概念:two: 使用2.1 创建字符串对象2.2 字符串的比较2.3 字符串长度2.4 字符串连接2.5 字符串截取2.6 字符串的查找和替换2.7 字符串的切割和拆分2.8 字符串和其他类型的转换2.9 字符串的格式化2.10 字符串的判断2.11 手动入池2.12 …

202319读书笔记|《春之海终日优哉游哉:谢芜村俳句300》——远山峡谷间樱花绽放,宇宙在其中

202319读书笔记|《春之海终日优哉游哉:谢芜村俳句300》——远山峡谷间樱花绽放,宇宙在其中 与谢芜村,小林一茶,芭蕉,与谢野晶子,俳句都很赞,虽多本书中略有重复,但多多观…

【备战秋招】每日一题:4月15日美团春招第一题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第一题-字符串前缀 在线评测链接:P1235 题目内容 塔子哥是一名优秀的软件工程师,他的公司最近接到了一个新项目,需要在短时间内实现一个新的字符串…

微服务 springcloud 09.整合feign到项目一个子服务中

01.项目结构如下&#xff1a; 02.修改sp04-orderservice项目&#xff0c;添加feign&#xff0c;调用item service和user service 1.sp04-orderservice项目的pom.xml 添加以下依赖: actuator feign hystrix <?xml version"1.0" encoding"UTF-8"?>…

全链路压测演进之迭代式压测

目录 1.背景原因 2.压测流程改进分析 3.迭代式压测流程 4.全流程压测模式演进 5.压测模式对比 6.迭代式压测反馈效果 7.总结 1.背景原因 !! 做系统服务压测都是比较耗时耗人力的&#xff0c;特别是在生产环境上做压测&#xff0c;压测的时间都是在晚上23点后&#xff0c…

Linux之线程安全(上)

文章目录 前言一、预备知识1.线程的ID2.局部存储的验证3.线程的封装 二、线程安全问题1.抢票程序2.问题分析 三、Linux线程互斥1.概念临界资源临界区互斥原子性 2.互斥量概念接口 3.mutex的使用全局锁的使用局部锁的使用 总结 前言 本文从一个模拟生活中的抢票程序的例子引入线…

经典的设计模式22——职责链模式

文章目录 职责链模式 老感觉职责链模式和状态模式有点像&#xff0c;好像都能实现请假流程。百度来一波。 真是巧了&#xff0c;职责链&#xff0c;状态&#xff0c;策略&#xff0c;则三个长得好像。 职责链模式 定义&#xff1a; 使多个对象都有机会处理请求&#xff0c;从…

循环神经网络RNN用于分类任务

RNN是一类拥有隐藏状态&#xff0c;允许以前的输出可用于当前输入的神经网络&#xff0c; 输入一个序列&#xff0c;对于序列中的每个元素与前一个元素的隐藏状态一起作为RNN的输入&#xff0c;通过计算当前的输出和隐藏状态。当前的影藏状态作为下一个单元的输入... RNN的种类…

AMEYA:如何设计好DC-DC电源,注意事项有哪些

DC-DC变换器&#xff08;DC-DC converter&#xff09;是指在直流电路中将一个电压值的电能变为另一个电压值的电能的装置。DC-DC的layout非常重要&#xff0c;会直接影响到产品的稳定性与EMI效果。 DC-DC电源几点经验以及规则 1、处理好反馈环&#xff0c;反馈线不要走肖特基下…

基于JavaWeb的体育赛事平台的设计与实现

摘要 体育是随着社会生产力的发展而产生和发展的&#xff0c;在其漫长的历史中&#xff0c;由于社会、政治和经济发展的影响&#xff0c;其内容、形式、功能和操作方法不断变化。奥运会和世界杯等大型体育赛事代表着体育发展的顶峰&#xff0c;因为它们不仅给组织者带来了巨大…

【考研复习】李春葆新编C语言习题与解析(错误答案订正)持续更新

新编C语言习题与解析 做习题时发现有些错误答案&#xff0c;写篇博客进行改正记录。不对地方欢迎指正&#xff5e; 第二章 C. 其中b的表达形式错误&#xff0c;若加上0x1e2b则正确。所以C错误。 D. e后为整数。指数命名规则&#xff1a;e前有数&#xff0c;后有整数。所以D错…

实验篇(7.2) 15. 站对站安全隧道 - 多条隧道聚合(FortiGate-IPsec) ❀ 远程访问

【简介】虽然隧道冗余可以解决连接问题&#xff0c;但是当大量数据访问或要求访问不能中断时&#xff0c;隧道冗余就力不从心了。这种情况就要用到隧道聚合。但是对宽带的要求也高了&#xff0c;双端都至少需要二条宽带。 实验要求与环境 OldMei集团深圳总部部署了域服务器和ER…

C语言复合类型之结构(struct)篇(结构指针)

结构相关知识总结 什么是结构&#xff1f;结构的声明与简单使用结构的初始化结构中成员变量的访问结构的初始化器结构数组结构数组的声明结构数组的成员标识 结构的嵌套结构指针结构作为参数在函数中传递将结构成员作为参数进行传递将结构地址(指向结构的指针)作为参数进行传递…

AI数字人之语音驱动人脸模型Wav2Lip

1 Wav2Lip模型介绍 2020年&#xff0c;来自印度海德拉巴大学和英国巴斯大学的团队&#xff0c;在ACM MM2020发表了的一篇论文《A Lip Sync Expert Is All You Need for Speech to Lip Generation In The Wild 》&#xff0c;在文章中&#xff0c;他们提出一个叫做Wav2Lip的AI模…

面试题:完败的面试,被虐得体无完肤

经过上一轮的面试&#xff0c;我信心一下子就建立起来了&#xff0c;说巧不巧&#xff0c;前几周正好看到美团校招&#xff0c;想着试一下也不会怎样&#xff0c;就找了学长要了内推码&#xff0c;试着投递了一下&#xff0c;然后就通知周六参加笔试&#xff0c;结果惨不忍睹。…

flv 报错 Unsupported codec in video frame: 12

视频播放器播放 flv 报错 [TransmuxingController] > DemuxException: type CodecUnsupported, info Flv: Unsupported codec in video frame: 12 原因 主要是因为我们的播放器不支持 H.265 视频编码&#xff1b; 解决办法 方法一&#xff1a;将设备端的视频编码改为 …

FPGA实现USB3.0 UVC 相机HDMI视频输出 基于FT602驱动 提供工程源码和QT上位机源码

目录 1、前言2、UVC简介3、FT602芯片解读4、我这儿的 FT601 USB3.0通信方案5、详细设计方案基于FT602的UVC模块详解 6、vivado工程详解7、上板调试验证8、福利&#xff1a;工程代码的获取 1、前言 目前USB3.0的实现方案很多&#xff0c;但就简单好用的角度而言&#xff0c;FT6…

基于多层感知机MLP的数据预测与误差分析的完整matlab代码分享

多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构。多层感知器(multilayer Perceptron,MLP)是指可以是感知器的人工神经元组成的多个层次。MPL的…

在Windows和Linux系统上,用C语言实现命令行下输入密码回显星号和完全隐藏密码

本篇目录 引子在Windows 上实现在Linux上实现回显星号代码解读运行 完全隐藏运行 引子 在Windows系统上&#xff0c;当我们使用命令行和MySQL进行交互时&#xff0c;第一步就是要输入密码&#xff1a; -p后面的参数紧跟着的就是相应用户的密码。然而这种方式并不安全&#xff…