java - 如何从服务层获取当前服务器 URL
问题描述
如何使用 SpringBoot 获取应用服务级别的 URL 地址?我需要将链接保存到数据库中的条目,例如:
var entity = new Entity();
entity.setUrl(serverURL/API(with id));
对我来说最棘手的是如何获取 serverURL:它可以是 localhost、preprod.site.com 或 prod.site.com。我可以向控制器请求获取请求,但它看起来很糟糕。
解决方案
您可以使用ServletUriComponentsBuilder.fromCurrentRequest()获取UriComponentsBuilder
基于 current 的HttpServletRequest
:
int id = 4711;
String url = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/your/path/with/{id}")
.buildAndExpand(id)
.toUriString();
推荐阅读
- php - Xdebug,不能接受外部 xdebug 连接。局部值覆盖主控
- excel - Vba 错误处理和类 (Excel)
- qt - androiddeployqt 找不到 ant 错误,但可以与 Qt Creator 一起使用
- mysql - 如何在网上商城的mysql中管理refunds db表?
- javascript - javascript中console.log和运算符类型的工作以及javascript中类型转换的示例
- sql - 在同一过程中设置两个行源非常慢 - Access 2010
- jquery - 需要 Jquery 帮助 - 2 点击 2 功能
- c# - C# 8 位置模式与解构模式
- gitlab - gitlab pages : 用于 certbot 挑战的特殊 webroot
- ios - 来自此 iOS 客户端应用程序的 FirebaseAuth 请求被阻止?