首页 > 解决方案 > 如何从服务层获取当前服务器 URL

问题描述

如何使用 SpringBoot 获取应用服务级别的 URL 地址?我需要将链接保存到数据库中的条目,例如:

var entity = new Entity();
   entity.setUrl(serverURL/API(with id));
  

对我来说最棘手的是如何获取 serverURL:它可以是 localhost、preprod.site.com 或 prod.site.com。我可以向控制器请求获取请求,但它看起来很糟糕。

标签: javaspring-boot

解决方案


您可以使用ServletUriComponentsBuilder.fromCurrentRequest()获取UriComponentsBuilder基于 current 的HttpServletRequest

int id = 4711;
String url = ServletUriComponentsBuilder.fromCurrentRequest()
                .path("/your/path/with/{id}")
                .buildAndExpand(id)
                .toUriString();

推荐阅读