返回

告别疑难杂症!一键获取SpringBoot服务端口号

后端

Spring Boot 服务端口号:从隐形到显形

作为一名 Spring Boot 开发人员,你是否曾陷入服务端口号无故失踪的尴尬境地?在 IDEA 的 Service/Dashboard 中,端口号本应清晰显示,却像人间蒸发般消失不见,让你无所适从。

不要惊慌,这种情况并不罕见。许多 Spring Boot 开发人员都曾遇到过这个头痛的问题。但现在,一切都将成为历史!本文将揭秘一种简单易行的方法,让你轻松告别服务端口号显示难题,在 IDEA 的 Service/Dashboard 中清晰地看到服务端口号。

问题根源

IDEA Service/Dashboard 中的端口号是由 Spring Boot 的 Actuator 模块提供的。如果你的项目中没有包含 Actuator 模块,或者 Actuator 模块没有正确配置,那么服务端口号就不会显示。

解决方法

如果没有 Actuator 模块

  1. 在 pom.xml 文件中添加 Actuator 依赖:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. 在 application.yml 文件中添加 Actuator 配置:
management:
  endpoints:
    web:
      exposure:
        include: info, health, metrics
  1. 重新启动 Spring Boot 服务。

如果启用了 Actuator 模块

  1. 检查是否启用了 Actuator 端点。在 application.yml 文件中检查 management.endpoints.web.exposure 配置,确保它包含了你想看到的端点,例如 info、health 和 metrics。

  2. 检查是否启用了管理端口。在 application.yml 文件中检查 management.server.port 配置,确保它设置了一个有效的端口号。

  3. 尝试在 IDEA 中重新加载项目。右键单击项目,选择“Reload Project”。

  4. 尝试重新启动 IDEA。

其他方法

如果以上方法均无法解决问题,还可以尝试:

  1. 检查防火墙或安全软件是否阻止了端口号的显示。

  2. 尝试在不同的浏览器或设备上访问 IDEA Service/Dashboard。

  3. 尝试使用不同的 IDE,例如 Eclipse 或 VSCode,来查看服务端口号。

  4. 尝试在 Spring Boot 服务中使用不同的端口号。

  5. 尝试在 Spring Boot 服务中使用不同的 Actuator 端点。

  6. 尝试在 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

常见问题解答

  1. 为什么我的服务端口号仍然不显示?

    • 确保你已经按照上述步骤添加了 Actuator 模块并正确配置了它。
    • 尝试重新加载项目或重新启动 IDEA。
  2. 我启用了 Actuator 模块,但只有 info 端点显示端口号。

    • 在 application.yml 文件中检查 management.endpoints.web.exposure 配置,并确保它包含了你想看到的其他端点,例如 health 和 metrics。
  3. 如何更改管理端口号?

    • 在 application.yml 文件中编辑 management.server.port 配置,并设置一个新的端口号。
  4. 我尝试了所有方法,但仍然无法显示端口号。

    • 检查你的防火墙或安全软件是否阻止了端口号的显示。
    • 尝试在不同的浏览器或设备上访问 IDEA Service/Dashboard。
  5. 如何获取 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 服务的乐趣吧!