Spring 自带工具——URI 工具UriComponentsBuilder
UriComponentsBuilder
是 Spring Framework 提供的一个实用工具类,用于构建 URI(Uniform Resource Identifier)。URI 是用于标识和定位资源的字符串,例如 URL(Uniform Resource Locator)就是一种特殊的 URI
UriComponentsBuilder
允许您以一种简单、安全和灵活的方式构建 URI,特别是在处理带有查询参数、路径变量和片段的复杂 URI 时非常有用。
以下是 UriComponentsBuilder
工具的一些主要功能:
- 构建 URI:您可以使用
UriComponentsBuilder
来构建 URI。通过添加路径、查询参数、片段等组件,您可以构建完整的 URI - 路径变量替换:如果 URI 中包含路径变量(例如
/users/{userId})
,UriComponentsBuilder
可以替换路径变量的值 - 添加查询参数:您可以通过
queryParam()
方法添加查询参数,而不必手动拼接查询字符串。UriComponentsBuilder
会处理参数的编码和拼接 - 片段添加:您可以通过
fragment()
方法添加片段,用于标识资源的特定部分 - 编码处理:
UriComponentsBuilder
会自动处理 URI 中的特殊字符,确保生成的 URI 符合规范
使用示例
import org.springframework.web.util.UriComponentsBuilder;public class UriBuilderExample {public static void main(String[] args) {// Base URIString baseUri = "https://www.example.com";// 构建 URIUriComponentsBuilder builder = UriComponentsBuilder.fromUriString(baseUri);// 添加路径变量: https://www.example.com/users/{userId}builder.path("/users/{userId}");// 添加查询参数: https://www.example.com/users/{userId}?name=John&age=30builder.queryParam("name", "John").queryParam("age", 30);// 添加片段,https://www.example.com/users/{userId}?name=John&age=30#profilebuilder.fragment("profile");// 构建最终的 URI,替换 url 中的路径变量:https://www.example.com/users/123?name=John&age=30#profileString finalUri = builder.buildAndExpand("123").toUriString();System.out.println("Final URI: " + finalUri);}
}
上述示例中,UriComponentsBuilder
用于构建一个包含路径变量、查询参数和片段的完整 URI。最终生成的 URI 将是类似于以下格式的字符串:
https://www.example.com/users/123?name=John&age=30#profile
UriComponentsBuilder
提供了一种简单而强大的方式来构建和处理 URI,避免了手动拼接字符串的繁琐和容易出错的问题。在 Spring 应用程序中,它通常用于构建 REST API 的请求 URL 或构造 HTTP 重定向的目标 URL
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Spring 自带工具——URI 工具UriComponentsBuilder
UriComponentsBuilder 是 Spring Framework 提供的一个实用工具类,用于构建 URI(Uniform Resource Identifier)。URI 是用于标识和定位资源的字符串,例如 URL(Uniform Resource Locator)就是一种特殊的 URI…...
![](https://img-blog.csdnimg.cn/67a37f32236f4842a38dbb886bbbddca.png)
优化案例5:视图目标列改写优化
优化案例5:视图目标列改写优化 1. 问题描述2. 分析过程2.1 目标SQL2.2 解决思路1)效率低的执行计划2)视图过滤性3)查看已有索引定义 2.3 视图改写2.4 增添复合索引 3. 优化总结 DM技术交流QQ群:940124259 1. 问题描述…...
![](https://img-blog.csdnimg.cn/a99d43ed2efe4489a1532d68b48b9fe9.png)
Origin绘制彩色光谱图
成果图 1、双击线条打开如下窗口 2、选择“图案”-》颜色-》按点-》映射-》Wavelength 3、选择颜色映射 4、单击填充-》选择加载调色板-》Rainbow-》确定 5、单击级别,设置成从370到780,右侧增量选择2(越小,颜色渐变越细腻&am…...
![](https://www.ngui.cc/images/no-images.jpg)
项目复盘:从实践中学习
引言 在我们的工作生涯中,每一个项目都是一次学习的机会。项目复盘是对已完成项目的全面评估,旨在理解我们做得好的地方,以及需要改进的地方。这篇文章将分享我们如何进行项目复盘,以及我们从中学到了什么。 项目背景 在我们开…...
![](https://img-blog.csdnimg.cn/2a3be193d72d48e4a7959feac652112d.png)
机器学习和数据挖掘02-Gaussian Naive Bayes
概念 贝叶斯定理: 贝叶斯定理是概率中的基本定理,描述了如何根据更多证据或信息更新假设的概率。在分类的上下文中,它用于计算给定特征集的类别的后验概率。 特征独立性假设: 高斯朴素贝叶斯中的“朴素”假设是,给定…...
![](https://www.ngui.cc/images/no-images.jpg)
【面试题精讲】Java Stream排序的实现方式
首发博客地址 系列文章地址 如何使用Java Stream进行排序 在Java中,使用Stream进行排序可以通过sorted()方法来实现。sorted()方法用于对Stream中的元素进行排序操作。具体实现如下: 对基本类型元素的排序: 使用sorted()方法对Stream进行排序…...
![](https://img-blog.csdnimg.cn/f800035c08e941adad754ab0f25ef9e2.png)
浅谈Spring
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。 一、什么是IOC? IoC Inversion of Control 翻译成中⽂是“控制反转”的意思,也就是说 Spring 是⼀个“控制反转”的容器。 1.1控制反转推导 这个控制反转怎…...
![](https://img-blog.csdnimg.cn/4a67fa7ba7ea4a11a7e331911e23cdaa.png)
Java 复习笔记 - 面向对象进阶篇
文章目录 一,Static(一)Static的概述(二)静态变量(三)静态方法(四)工具类(五)static的注意事项 二,继承(一)继…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
微信小程序中识别html标签的方法
rich-text组件 在微信小程序中有一个组件rich-text可以识别文本节点或是元素节点 具体入下: //需要识别的数据放在data中,然后放在nodes属性中即可 <rich-text nodes"{{data}}"></rich-text>详情可以参考官方文档:https://developers.weixin.qq.com/mi…...
![](https://img-blog.csdnimg.cn/4255b5807583406183764678a40a1991.png)
02_常见网络层协议的头结构
1.ARP报文的报文结构 ARP首部的5个字段的含义: 硬件类型:值为1表示以太网MAC地址。 协议类型:表示要映射的协议地址类型,0x0800 表示映射为IP地址。 硬件地址长度:在以太网ARP的请求和应答中都是6,表示M…...
![](https://www.ngui.cc/images/no-images.jpg)
ChatGLM学习
GLM paper:https://arxiv.org/pdf/2103.10360.pdfchatglm 130B:https://arxiv.org/pdf/2210.02414.pdf 前置知识补充 双流自注意力 Two-stream self-attention mechanism(双流自注意机制)是一种用于自然语言处理任务的注意力机制…...
![](https://www.ngui.cc/images/no-images.jpg)
Flink之Watermark
1.乱序问题 流处理从事件产生,到流经source,再到operator,中间是有一个过程和时间的,虽然大部分情况下,流到operator的数据都是按照事件产生的时间顺序来的,但是也不排除由于网络、分布式等原因࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
二轮平衡小车3:PID速度环
使用芯片:STM32 F103 C8T6 今日继续我的二路平衡小车开发之路,今日编写的是二轮平衡小车的PID速度环,我准备了纸飞机串口助手软件来辅助测试调节PID。 本文主要贴代码,之前的文章都有原理,代码中相应初始化驱动部分也…...
![](https://img-blog.csdnimg.cn/dc876b51373c4b3f8975d0dd03e8e8c1.png)
C语言之练习题
欢迎来到我的世界 希望这篇文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 目录 前言编程题第一题:珠玑妙算第二题:寻找奇数第三题:寻找峰值第四题:数对 总结 前言 这是暑假题目的收尾文章&am…...
![](https://img-blog.csdnimg.cn/img_convert/917631c2bf40b718817b9545cb690ff4.png)
没钱,没人,没经验?传统制造型企业如何用无代码实现转型
2023年,国家市场监督管理总局发布了三项重要标准,包括《工业互联网平台选型要求》、《工业互联网平台微服务参考框架》和《工业互联网平台开放应用编程接口功能要求》。这些标准的发布对于完善工业互联网平台标准体系,提升多样化工业互联网平…...
![](https://www.ngui.cc/images/no-images.jpg)
CentOS ARM 部署 kubernetes v1.24.6
1.背景 之前安装的kubernetes版本为v1.19.0 树莓派使用(CentOS7.9 armv71 Kubernetes1.19.0), 由于版本过低,一些HPA相关的功能支持不是特别好,因此需要将版本升级,本次会将版本升级为v1.24.6. 2. 如何upgrade 2.1. 优雅升级 kubeadm自带…...
![](https://img-blog.csdnimg.cn/img_convert/db8248d35ada46927475891bd65798af.jpeg)
LeetCode 725. Split Linked List in Parts【链表】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
![](https://img-blog.csdnimg.cn/de4fba3733ee48c5a7036d6adff6824f.png#pic_center)
云计算中的负载均衡技术,确保资源的平衡分配
文章目录 1. 硬件负载均衡器2. 软件负载均衡器3. DNS负载均衡4. 内容分发网络(CDN) 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:云计算 ✨文章内…...
![](https://www.ngui.cc/images/no-images.jpg)
探索 SOCKS5 代理在跨境电商中的网络安全应用
随着全球化的发展,跨境电商成为了商业界的一颗新星,为企业提供了无限的发展机遇。然而,随之而来的是网络安全的挑战,特别是在处理国际网络流量时。在这篇文章中,我们将探讨如何利用 SOCKS5 代理和代理 IP 技术来加强跨…...
![](https://img-blog.csdnimg.cn/6fcedceef1864b46ae931d84ed1f1781.png)
全网独家:编译CentOS6.10系统的openssl-1.1.1多版本并存的rpm安装包
CentOS6.10系统原生的openssl版本太老,1.0.1e,不能满足一些新版本应用软件的要求,但是它又被wget、mysql-libs、python-2.6.6、yum等一众系统包所依赖,不能再做升级。故需考虑在不影响系统原生openssl的情况下,安装较新…...
![](https://www.ngui.cc/images/no-images.jpg)
【go】异步任务解决方案Asynq实战
文章目录 一.Asynq介绍二.所需工具三.代码示例四.Reference 一.Asynq介绍 Asynq 是一个 Go 库,一个高效的分布式任务队列。 Asynq 工作原理: 客户端(生产者)将任务放入队列服务器(消费者)从队列中拉出任…...
![](https://www.ngui.cc/images/no-images.jpg)
掌握 Android 自动化测试框架 UiAutomator UiAutomator2
掌握 Android 自动化测试框架 UiAutomator & UiAutomator2 一、UiAutomator 简介二、UiAutomator2 的诞生三、UiAutomator2 的应用实践总结你是否曾经在进行 Android 应用开发时,对于如何进行全面、有效的自动化测试感到困惑?你是否想要更高效地进行 UI 测试,而不是一遍…...
![](https://www.ngui.cc/images/no-images.jpg)
c#抽象类(abstract)
概述: C#中的抽象类是一种特殊类型的类,它不能被实例化,只能被继承。抽象类用于提供一个共享的基类,其中定义了一些方法和属性的签名,但没有具体的实现。这些方法和属性可以在派生类中进行实现。 使用抽象类的主要目…...
![](https://img-blog.csdnimg.cn/670b00cb21ba42919cf77ce8423345ee.png)
语义分割实践思考记录(个人备忘录)
一、任务管理器、NVDIA的GPU利用率显示[1][2] 若需要在任务管理器中查看基于Pytorch框架的GPU利用率,那么,我们需要将监控面板监测内容调整为cuda。图一(左)即为英伟达命令行工具面板。 图一 英伟达GPU使用率监控 二、基于混淆矩阵…...
![](https://img-blog.csdnimg.cn/img_convert/d0aba61ea5ee9961fcc6411da01a9fad.jpeg)
Zebec Protocol 成非洲利比亚展会合作伙伴,并将向第三世界国家布局
在 9 月 6 日,The Digital Asset Summit ’23(利比亚大会)在尼日利亚首度阿布贾的 NAF 会议中心举办,该会议对 Web3 领域在非洲地区的发展进行了探索,旨在推动非洲地区区块链产业的进一步发展,据悉该会议室…...
![](https://www.ngui.cc/images/no-images.jpg)
随机流-RandomAccessFile
RandomAccessFile RandomAccessFile 基本操作案例 RandomAccessFile 基本操作 案例 import java.io.*;public class TestMain09 {public static void main(String[] args) throws Exception {insert("D:\\home\\product\\aa.txt",2,"ni");}public static…...
![](https://www.ngui.cc/images/no-images.jpg)
单例和静态类
C#中的单例(Singleton)和静态类(Static Class)是两种不同的设计模式,它们各自有不同的用途和特点。 单例模式是一种设计模式,它确保一个类只有一个实例,并提供全局访问点。通常,单例…...
![](https://www.ngui.cc/images/no-images.jpg)
PMP-项目风险管理的重要性
一、什么是项目风险管理 项目风险管理旨在识别和管理未被其他项目管理过程所管理的风险。如果不妥善管理,这些风险有可能导致项目偏离计划,无法达成既定的项目目标。因此,项目风险管理的有效性直接关乎项目成功与否。 每个项目都在两个层面…...
![](https://www.ngui.cc/images/no-images.jpg)
学习的心得
文章目录 第一节课心得**学会了敲写数学公式** 第一节课心得 老师讲得非常好,我们下载了xmind,如何制作思维导图 学会了敲写数学公式 ∫ 10 20 ( x 2 − 3 x 2 ) d x \displaystyle\int_{10}^{20}(x^2-3x2)dx ∫1020(x2−3x2)dx...
![](https://img-blog.csdnimg.cn/img_convert/585222c9021f29a20683dea0adcab664.png)
Python网络爬虫中这七个li标签下面的属性值,不是固定的,怎样才能拿到他们的值呢?...
点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。 大家好,我…...
![](/images/no-images.jpg)
游戏网站开发目的/潍坊在线制作网站
/************************************************************************ busybox reboot 无效* 说明:* 最近调传感器,使用的ssh连接设备,调完程序发现reboot命令无效,后来* 经过使用uart口看启动过程…...
![](/images/no-images.jpg)
重庆市交易中心招标网/宁波seo推广推荐公司
今天来总结下python3.4版本列表的一些操作方法。 列表(list): 1、列表就像一个线性容器,但是比C的 lis t扩展多得多,列表里的元素可以是相同类型,也可以包含各种类型,比如列表里嵌套另一个列表 2、list的索引是也是从0…...
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/sad.gif)
山西建设厅网站首页/网上推广怎么做
基本配置步骤: 一,下载对应的文件: 安装python ,http://www.python.org/ 下载scons-local ,http://sourceforge.net/projects/scons/files/scons-src/2.0.1/scons-local-2.0.1.zip 下载swtoolkit,http:/…...
![](/images/no-images.jpg)
用群晖做网站服务器/百度首页优化排名
题目链接: POJ-3087 题目大意: 两个长度相同的字符串表示两副扑克牌,按s2-s1-s2-s1…s2-s1的顺序一次叠加,称为一次洗牌操作,洗牌后上半部分为new s2 下半部分为new s1 ,现在要求洗牌多少次可以达到某个…...
![](/images/no-images.jpg)
西客站网站建设/百度下载免费安装
我觉得我很亲近,但我无法解决这个问题。我只想打印字段tpnc的数值结果。只有一个数字要打印。在 我的代码是:import httplib, urllib, base64, json, requests headers { # Request headers Ocp-Apim-Subscription-Key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX…...
![](https://img-blog.csdnimg.cn/img_convert/b94c96a4f04b867cf6b092155581a85c.png)
幸运快三的网站怎么做/青海网站seo
本文介绍通过C#和http://VB.NET程序在Excel文档中添加筛选器并执行筛选的方法。 需要使用Excel类库工具Free Spire.XLS for .NET,可通过官网下载包,解压安装到指定路径,完成安装后,将安装路径下Bin文件夹下的Spire.Xls.dll文件添加…...