intellj idea是如何知道springboot的端口号的?
在使用intellj idea Ultimate版本时,当启动一个springboot项目后,idea会自动显示出来端口号。当我在配置文件中设置server.port=0,并把输出日志也关闭了,idea仍然可以识别出端口号。跟据网上的说法是从jmx中拿的,我在idea的运行配置中禁用jmx端点后,确实识别不出端口号了。但我用jconsole查看启动的springboot项目中的所有属性,没有任何一个值是和启动端口号一样的。所有我想知道这个原理是什么。
回复
1个回答
test
2024-06-23
idea会使用JavaAgent,在你要启动的进程中注入代码,这些代码会在你的进程启动一个服务,用来接收客户端IDEA的各种指令,以及返回你的进程中的各种信息,然后idea就可以操控你的进程了。我曾经做过类似的东西,通信协议我使用的Java自带的RMI。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容