告别疑难杂症!一键获取SpringBoot服务端口号
2023-12-27 17:38:58
Spring Boot 服务端口号:从隐形到显形
作为一名 Spring Boot 开发人员,你是否曾陷入服务端口号无故失踪的尴尬境地?在 IDEA 的 Service/Dashboard 中,端口号本应清晰显示,却像人间蒸发般消失不见,让你无所适从。
不要惊慌,这种情况并不罕见。许多 Spring Boot 开发人员都曾遇到过这个头痛的问题。但现在,一切都将成为历史!本文将揭秘一种简单易行的方法,让你轻松告别服务端口号显示难题,在 IDEA 的 Service/Dashboard 中清晰地看到服务端口号。
问题根源
IDEA Service/Dashboard 中的端口号是由 Spring Boot 的 Actuator 模块提供的。如果你的项目中没有包含 Actuator 模块,或者 Actuator 模块没有正确配置,那么服务端口号就不会显示。
解决方法
如果没有 Actuator 模块
- 在 pom.xml 文件中添加 Actuator 依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 在 application.yml 文件中添加 Actuator 配置:
management:
endpoints:
web:
exposure:
include: info, health, metrics
- 重新启动 Spring Boot 服务。
如果启用了 Actuator 模块
-
检查是否启用了 Actuator 端点。在 application.yml 文件中检查 management.endpoints.web.exposure 配置,确保它包含了你想看到的端点,例如 info、health 和 metrics。
-
检查是否启用了管理端口。在 application.yml 文件中检查 management.server.port 配置,确保它设置了一个有效的端口号。
-
尝试在 IDEA 中重新加载项目。右键单击项目,选择“Reload Project”。
-
尝试重新启动 IDEA。
其他方法
如果以上方法均无法解决问题,还可以尝试:
-
检查防火墙或安全软件是否阻止了端口号的显示。
-
尝试在不同的浏览器或设备上访问 IDEA Service/Dashboard。
-
尝试使用不同的 IDE,例如 Eclipse 或 VSCode,来查看服务端口号。
-
尝试在 Spring Boot 服务中使用不同的端口号。
-
尝试在 Spring Boot 服务中使用不同的 Actuator 端点。
-
尝试在 Spring Boot 服务中使用不同的管理端口。
代码示例
以下是一个 Spring Boot 服务的示例,它启用了 Actuator 模块并配置了 info 端点:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@GetMapping("/info")
public String info() {
return "Hello World!";
}
}
在 application.yml 文件中:
management:
endpoints:
web:
exposure:
include: info
常见问题解答
-
为什么我的服务端口号仍然不显示?
- 确保你已经按照上述步骤添加了 Actuator 模块并正确配置了它。
- 尝试重新加载项目或重新启动 IDEA。
-
我启用了 Actuator 模块,但只有 info 端点显示端口号。
- 在 application.yml 文件中检查 management.endpoints.web.exposure 配置,并确保它包含了你想看到的其他端点,例如 health 和 metrics。
-
如何更改管理端口号?
- 在 application.yml 文件中编辑 management.server.port 配置,并设置一个新的端口号。
-
我尝试了所有方法,但仍然无法显示端口号。
- 检查你的防火墙或安全软件是否阻止了端口号的显示。
- 尝试在不同的浏览器或设备上访问 IDEA Service/Dashboard。
-
如何获取 Spring Boot 服务的端口号而不使用 IDEA Service/Dashboard?
- 可以通过以下方式获取端口号:
- 在控制台中打印端口号:
System.out.println("Port: " + serverPort);
- 使用 JMX 客户端连接到 Spring Boot 服务并获取端口号。
- 使用 curl 命令:
curl http://localhost:8080/actuator/info | jq '.server.port'
- 在控制台中打印端口号:
- 可以通过以下方式获取端口号:
结论
通过本文提供的简单步骤,你可以轻松告别服务端口号显示难题,在 IDEA Service/Dashboard 中清晰地看到服务端口号。告别困惑和猜测,尽情享受开发 Spring Boot 服务的乐趣吧!