SpringBoot 如何处理跨域请求?你说的出几种方法?
引言:在现代的Web开发中,跨域请求(Cross-Origin Resource Sharing,CORS)是一个常见的挑战。随着前后端分离架构的流行,前端应用通常运行在一个与后端 API 不同的域名或端口上,这就导致了浏览器的同源策略(Same-Origin Policy)的限制,从而出现了跨域请求问题。
Spring Boot 作为一种流行的 Java 后端框架,提供了多种处理跨域请求的方法,使得开发人员能够灵活地配置和管理跨域资源共享。本文将深入探讨几种常见的解决方案,帮助开发人员理解如何在 Spring Boot 应用中有效地处理跨域请求问题。
题目
SpringBoot 如何处理跨域请求?你说的出几种方法?
推荐解析
![](https://img-blog.csdnimg.cn/img_convert/fb838562fdcc3233739638c88b9d3df4.png)
跨域请求概述
1)什么是跨域请求?
跨域请求(Cross-Origin Request)指的是在浏览器环境下,前端代码发起的请求与当前页面的域名(或端口、协议)不同。浏览器的同源策略(Same-Origin Policy)限制了从一个源(域名、协议、端口组成的组合)加载的文档或脚本如何与来自另一个源的资源进行交互。
具体来说,如果一个页面加载自 http://domain1.com,则它的同源策略默认限制了对 http://domain2.com 发起的请求。
2)为什么会出现跨域问题?
跨域问题的出现主要是为了保护用户数据和用户隐私安全。如果没有同源策略的限制,恶意网站可以利用当前用户的身份在其他网站上进行操作,如发送请求、读取数据,这可能导致信息泄露或潜在的安全威胁。
3)可能会导致的安全风险
信息泄露:允许恶意网站读取其他网站的敏感数据。
CSRF(跨站请求伪造)攻击:如果没有适当的防护措施,允许攻击者伪造用户的请求并在用户不知情的情况下执行操作。
恶意脚本注入:通过跨域请求注入恶意脚本,影响其他域上的安全性。
跨域解决方案
1)使用@CrossOrigin
注解
Spring 框架提供了@CrossOrigin
注解,可以直接在 Controller 类或方法上使用,以声明允许来自特定源的请求。例如:
@RestController
@RequestMapping("/api")
public class MyController {@CrossOrigin(origins = "http://allowed-origin.com")@GetMapping("/data")public ResponseEntity<String> getData() {// 处理逻辑}
}
优点:简单直接,适用于简单的跨域场景。
缺点:无法进行更细粒度的配置,如请求方法、请求头等。
2) 使用WebMvcConfigurer
配置类
通过自定义WebMvcConfigurer
配置类,可以更灵活地配置跨域请求。例如:
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/api/**").allowedOrigins("http://allowed-origin.com").allowedMethods("GET", "POST").allowedHeaders("header1", "header2").exposedHeaders("header3").allowCredentials(true).maxAge(3600);}
}
优点:可以精确控制允许的源、方法、头部等。
缺点:需要编写额外的配置类,相对比较复杂。
3)使用过滤器(Filter)
通过自定义过滤器来处理跨域请求,这种方法可以在请求到达 Controller 之前进行处理。例如:
@Component
public class CorsFilter implements Filter {@Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)throws IOException, ServletException {HttpServletResponse response = (HttpServletResponse) res;HttpServletRequest request = (HttpServletRequest) req;response.setHeader("Access-Control-Allow-Origin", "http://allowed-origin.com");response.setHeader("Access-Control-Allow-Methods", "GET,POST");response.setHeader("Access-Control-Allow-Headers", "header1,header2");response.setHeader("Access-Control-Expose-Headers", "header3");response.setHeader("Access-Control-Allow-Credentials", "true");response.setHeader("Access-Control-Max-Age", "3600");chain.doFilter(req, res);}}
优点:可以完全自定义跨域请求处理逻辑。
缺点:需要更多的Java编程经验,并且可能需要处理更复杂的跨域场景。
其他补充
鱼聪明 AI 的回答:
鱼聪明 AI 地址:https://www.yucongming.com/
1. 预检请求(Preflight Requests)
跨域请求中,某些复杂请求(如带有自定义头部的请求、使用某些特殊方法如PUT、DELETE等的请求)会触发浏览器先发送一个预检请求(OPTIONS请求)到服务器,以确定是否允许实际的请求。预检请求包含以下头部信息:
- Origin:表明发起请求的源。
- Access-Control-Request-Method:实际请求将使用的HTTP方法。
- Access-Control-Request-Headers:实际请求将使用的自定义头部。
服务器需要正确响应预检请求,以确保浏览器安全地执行实际请求。
处理预检请求的方法:
-
使用
@CrossOrigin
注解处理:@CrossOrigin(origins = "http://allowed-origin.com", methods = {RequestMethod.GET, RequestMethod.POST}, allowedHeaders = {"header1", "header2"}) @RequestMapping(value = "/api/data", method = RequestMethod.OPTIONS) public ResponseEntity<Void> preflight() {return ResponseEntity.ok().build(); }
在Controller中定义一个处理OPTIONS请求的方法,并使用
@CrossOrigin
注解指定允许的源、方法和头部。 -
通过
WebMvcConfigurer
配置类处理:@Configuration public class WebConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/api/**").allowedOrigins("http://allowed-origin.com").allowedMethods("GET", "POST").allowedHeaders("header1", "header2").exposedHeaders("header3").allowCredentials(true).maxAge(3600);}@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/api/**").allowedOrigins("http://allowed-origin.com").allowedMethods("GET", "POST").allowedHeaders("header1", "header2").exposedHeaders("header3").allowCredentials(true).maxAge(3600);} }
在
WebMvcConfigurer
配置类中,通过重写addCorsMappings
方法来定义预检请求的处理方式。
2. 其他注意事项
-
Credentials(凭证)的处理:
如果请求需要使用凭证(如使用Cookie、HTTP认证信息等),需要确保在跨域请求中设置
Access-Control-Allow-Credentials
为true
,并在客户端请求中设置withCredentials
为true
。 -
暴露自定义头部:
如果需要在响应中暴露某些自定义头部供客户端访问,可以通过
Access-Control-Expose-Headers
头部指定。 -
缓存控制:
可以通过
Access-Control-Max-Age
头部指定预检请求的缓存时间,减少重复发送预检请求的次数,提升性能。
总结
避免跨域请求问题不仅仅是简单地允许跨域请求,还需要正确处理预检请求及相关细节。通过使用@CrossOrigin
注解、自定义WebMvcConfigurer
配置类或过滤器来处理跨域请求,可以有效地保证跨域请求的安全性和可靠性。同时,要特别注意凭证的处理及其他相关头部信息的配置,确保跨域请求能够在安全、可控的环境下完成。
欢迎交流
本文主要介绍 SpringBoot 处理跨域请求的方式,另外可以用 SpringSecurity 和 SpringCloudGateWay 等框架进行全局跨域处理,在文末还剩下三个问题,欢迎小伙伴在评论区进行留言!近期面试鸭小程序已全面上线,想要刷题的小伙伴可以积极参与!
![](https://img-blog.csdnimg.cn/img_convert/e61cf3c4996766496cd59619d7535cea.png)
1)如何区分简单请求和复杂请求?
2)在实际项目中,如何选择合适的跨域请求解决方案?
3)如何处理凭证(Credentials)在跨域请求中的应用?
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/e61cf3c4996766496cd59619d7535cea.png)
SpringBoot 如何处理跨域请求?你说的出几种方法?
引言:在现代的Web开发中,跨域请求(Cross-Origin Resource Sharing,CORS)是一个常见的挑战。随着前后端分离架构的流行,前端应用通常运行在一个与后端 API 不同的域名或端口上,这就导致了浏览器的…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
OV SSL证书年度成本概览:为企业安全护航的经济之选
在当今数字化时代,企业网站不仅是品牌展示的窗口,更是与客户沟通的桥梁。然而,随着网络威胁的不断升级,保护网站安全成为了企业不可忽视的任务。SSL证书,特别是OV SSL证书,因其对企业身份的严格验证&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
歌尔气压计SPA06-003在无人机的创新应用
随着科技的不断进步,各类智能设备的功能日益强大,其中气压计作为一种能够测量大气压力的传感器,已被广泛应用于多种领域。歌尔气压计以其高精度、低功耗的特点,在无人机和智能手表上的应用尤为突出,为这两个领域的产品…...
![](https://www.ngui.cc/images/no-images.jpg)
python3多文件操作
1 介绍 有两个.py文件,分别为main.py和util.py,执行main.py时,调用util.py当中的函数。 main.py内容如下, import util if __name__ "__main__":a [3.0,4.0]length util.get_length_from_vec(a)print(f"leng…...
![](https://www.ngui.cc/images/no-images.jpg)
312. 戳气球
312. 戳气球 题目链接:312. 戳气球 代码如下: //参考链接:https://leetcode.cn/problems/burst-balloons/solutions/336390/chuo-qi-qiu-by-leetcode-solution class Solution { public:int maxCoins(vector<int>& nums) {int nnums.size()…...
![](https://img-blog.csdnimg.cn/direct/37d5ffd7126249ecbf2961b5d5bd85df.png)
深入理解C++中的锁
目录 1.基本互斥锁(std::mutex) 2.递归互斥锁(std::recursive_mutex) 3.带超时机制的互斥锁(std::timed_mutex) 4.带超时机制的递归互斥锁(std::recursive_timed_mutex) 5.共享…...
![](https://img-blog.csdnimg.cn/direct/815cd4e7d35e4fd6ad7c96760189ee51.png)
压缩pdf文件大小,压缩pdf文件大小软件哪个好
在数字化时代,PDF文件因其卓越的跨平台兼容性和稳定性而成为工作与学习的好帮手。然而,当PDF文件体积过大时,传输和存储便成了一项挑战。别担心,本文将为你揭秘如何快速压缩PDF文件,让你的文档轻装上路! 压…...
![](https://img-blog.csdnimg.cn/62ecd3c3160341e0afee3dab710d6df3.jpg)
难道 Java 已经过时了?
当一门技术已经存在许多年了,它可能会失去竞争力,而后黯然退场,默默地离开,这对大部分的人来说就已经算是过时了。 Java 于 1995 年正式上线,至今已经走过了 27 个年头,在众多编程技术里算是年龄比较大的语…...
![](https://www.ngui.cc/images/no-images.jpg)
华为OD机考题(HJ32 密码截取)
前言 经过前期的数据结构和算法学习,开始以OD机考题作为练习题,继续加强下熟练程度。有需要的可以同步练习下。 描述 Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA&…...
![](https://www.ngui.cc/images/no-images.jpg)
【高考志愿】测绘科学与技术
目录 一、专业介绍 1.1 专业概述 1.2 专业方向 1.3 课程内容 二、就业前景 三、报考注意事项 四、测绘科学与技术专业排名 五、职业规划与未来发展 高考志愿选择测绘科学与技术专业,对于许多有志于空间信息技术领域发展的学生来说,无疑是一个极具…...
![](https://www.ngui.cc/images/no-images.jpg)
SpringBoot异步接口实现 提升吞吐量
前言 Servlet 3.0之前:HTTP请求由单一线程处理。Servlet 3.0之后:支持异步处理,提高系统吞吐量。 SpringBoot 异步接口实现方式 AsyncContext:Servlet层级,不常用。Callable:使用java.util.concurrent.C…...
![](https://img-blog.csdnimg.cn/direct/854c786e24ac4ce18e88ef2329636ad7.png)
C语言快速学习笔记
学习网站:C 语言教程 | 菜鸟教程 (runoob.com)C 语言教程 | 菜鸟教程 (runoob.com)C 语言教程 | 菜鸟教程 (runoob.com) 这个网站知识完整,讲解清晰。 在线C语言编程工具:菜鸟教程在线编辑器 (runoob.com) 国外学习网站:C语言介…...
![](https://img-blog.csdnimg.cn/direct/94b0251f19db4094b7f97261ff9968fb.png)
如何选择易用性高的项目管理软件?
随着项目管理在各行各业的广泛应用,选择一款易用性高的项目管理软件变得越来越重要。易用性高的软件可以帮助企业提高工作效率,降低管理成本,同时还能提升团队之间的协作能力。那么,如何选择一款易用性高的项目管理软件呢…...
![](https://www.ngui.cc/images/no-images.jpg)
vue3基于uni-app 封装小程序request请求
const BASE_URL https://47.122.26.142; // 替换为你的 API 基础 URL const token uni.getStorageSync(token);const request (url: string, method: any, data {}, headers {}) > {return new Promise((resolve, reject) > {uni.request({url: ${BASE_URL}${url},m…...
![](https://img-blog.csdnimg.cn/direct/7ecb53184b8e43159cc5bf532022006e.png#pic_center)
YOLO在目标检测与视频轨迹追踪中的应用
YOLO在目标检测与视频轨迹追踪中的应用 引言 在计算机视觉领域,目标检测与视频轨迹追踪是两个至关重要的研究方向。随着深度学习技术的飞速发展,尤其是卷积神经网络(CNN)的广泛应用,目标检测与视频轨迹追踪的性能得到…...
![](https://img-blog.csdnimg.cn/direct/080e0189047f40a2913d59ba5ef7e814.png)
版本控制系统:Git 纯应用(持续更新)
基本操作 ctrl上行键:上次代码 本地仓库:Git init 新建文件:touch xxxx.xxx 查看状态:Git status 文件从工作区——暂存区:Git add ./文件名(.是通配符代表所有) 暂存区——仓库:Git commit -m &…...
![](https://img-blog.csdnimg.cn/direct/373041d2619e46638848fb98d381ba74.png)
从0开始搭建vue项目
#先查下电脑有没有安装过node和npm node -v npm -v #安装vue npm install -g vue #安装webpack npm install webpack -g 都安装好后,进入你想创建的文件夹内 创建名字:vue init webpack <project_name> 就默认回车 然后根据项目需求Y/n 比如…...
![](https://www.ngui.cc/images/no-images.jpg)
Java框架常见面试题
在Java框架面试中,面试官通常会考察候选人对常见Java框架的理解、使用经验以及解决问题的能力。以下是一些常见的Java框架面试题及其详细回答: 1. Spring框架相关问题 问题:Spring框架的核心组件有哪些?它们各自的作用是什么&am…...
![](https://www.ngui.cc/images/no-images.jpg)
linux c 应用编程定时器函数
在 Linux C 应用编程中,对于多线程编程中的定时器函数使用,通常可以借助 pthread 库和系统提供的定时器相关的函数来实现。 首先,常见的定时器函数有 setitimer() 和 alarm() 。setitimer() 函数可以更精确地设置定时器,它可以设…...
![](https://img-blog.csdnimg.cn/direct/99c2c7ec22f94b79b8079942d4c52b7a.png)
设备调试上位机GUI
C Fast Qt C 前端 原来真的不需要在 design 上画来画去,有chat-gpt 那里不知道问哪里 全是组件拼起来的,不需要画,最后发现其实也是定式模式,跟着AI 学套路 最终前端界面 鼠标邮件绑定几个功能 太nice 了 在再加一个全局的日志模块 yyds MVC 的架构, 视图…...
![](https://img-blog.csdnimg.cn/direct/e884d957d0ba417f967dcb348e77e8ae.jpeg#pic_center)
项目管理系统厂商:奥博思发布《项目管理系统助力 IPD 高效落地》演讲
一场题为:“标准为基,项目之上 ,持续提升 PMO 卓越中心”的全国 PMO 专业人士年度盛会在京召开。会议围绕 PMO 卓越中心能力提升、项目管理标准化、项目管理体系建设等核心话题力邀业界专家、卓有建树的 PMO 实践精英来演讲、交流、分享。 奥…...
![](https://www.ngui.cc/images/no-images.jpg)
Java项目总结1
1.什么是面向对象(此对象非彼对象) “面向对象的方法主要是把事物给对象化,包括其属性和行为。面向对象编程更贴近实际生活的思想。总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用…...
![](https://www.ngui.cc/images/no-images.jpg)
Java中的类加载机制详解
Java中的类加载机制详解 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 类加载机制概述 在Java中,类加载机制是Java虚拟机(JVM)将.class文件加载到内存中并转换…...
![](https://img-blog.csdnimg.cn/direct/11995463f62b420d8948ac19ecc1d873.gif#pic_center)
SwiftUI 中 Grid 内多个 NavigationLink 同时发生导航之诡异问题的解决
问题现象 不知小伙伴们发现了没有?在 SwiftUI 中如果有多个 NavigationLink 视图嵌入在 Grid(包括 LazyVGrid 和 LazyHGrid)容器中,点击其中任意一个 NavigationLink 都会导致所有导航一起发生。 如上图所示,点击 Grid 中任何一个 NavigationLink,所有 NavigationLink 都…...
![](https://img-blog.csdnimg.cn/direct/7e2959a0494044da88a1a411f1392da0.png)
51单片机第21步_将TIM0用作两个8位定时器同时将TIM1用作波特率发生器
本章重点讲解将TIM0用作两个8位定时器,同时将TIM1用作波特率发生器。 当定时器T0在方式3时,T1不能产生中断,但可以正常工作在方式0、1、2下,大多数情况下,T1将用作串口的波特率发生器。 1、定时器0工作在模式3框图&a…...
![](https://img-blog.csdnimg.cn/direct/885f769a1ebd488f9826410bf67d288c.png)
API-元素尺寸与位置
学习目标: 掌握元素尺寸与位置 学习内容: 元素尺寸与位置仿京东固定导航栏案例实现bilibili点击小滑块移动效果 元素尺寸与位置: 使用场景: 前面案例滚动多少距离,都是我们自己算的,最好是页面滚动到某个…...
![](https://img-blog.csdnimg.cn/direct/dea94082466c4967b29680ac146d8e6c.png#pic_center)
C语言中的基础指针操作
在C语言中,指针是一个非常重要的概念,它提供了直接访问内存地址的能力。指针变量用于存储内存地址,而不是数据值,在某种意义上和门牌号具有相似含义:指针是一个变量,其存储的是另一个变量的内存地址&#x…...
![](https://img-blog.csdnimg.cn/img_convert/6c78eaec698aaac866dd8e39e7de9d76.jpeg)
LabVIEW环境下OCR文字识别的实现策略与挑战解析
引言 在自动化测试领域,OCR(Optical Character Recognition,光学字符识别)技术扮演着重要角色,它能够将图像中的文字转换成机器可编辑的格式。对于使用LabVIEW约5个月,主要进行仪器控制与数据采集的你而言…...
![](https://www.ngui.cc/images/no-images.jpg)
中英双语介绍美国的州:堪萨斯州(Kansas)
中文版 堪萨斯州简介 堪萨斯州(Kansas)位于美国中部,以其广阔的平原、丰富的农业资源和多样的文化遗产而著称。以下是对堪萨斯州的详细介绍,包括其地理位置、人口、经济、教育、文化和主要城市。 地理位置 堪萨斯州位于美国中…...
![](https://img-blog.csdnimg.cn/direct/42d945beae724d159fd17f5c9df32178.png)
信息收集---端口服务信息收集
1. 什么是端口 是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45…...
![](https://img-blog.csdnimg.cn/direct/9fe8f4cf36ca42f6bd5eb90f033126b8.jpeg)
Python知识点背诵手册,超详细知识梳理
一、手册介绍 《Python知识点背诵手册》是一份详尽的Python学习资料,旨在帮助学习者系统地掌握Python语言的基础知识和进阶技能。该手册将Python的所有关键语法和概念进行了精炼的总结,并以易于理解和记忆的方式呈现。以下是手册的主要特点和内容概述&a…...
![](https://www.ngui.cc/images/no-images.jpg)
【Pytorch实用教程】如何在多个GPU上使用分布式数据并行进行训练模型
文章目录 1. 代码(可直接运行,含随机生成的训练数据)2. 代码的详细解释2.1. 导入必要的库和模块2.2. 设置每个进程的初始设置2.3. 随机生成数据集类 `RandomDataset`2.4. 训练函数 `train`1. 代码(可直接运行,含随机生成的训练数据) 以下是一个基于PyTorch的多GPU分布式…...
![](https://www.ngui.cc/images/no-images.jpg)
PIL,OpenCV,Pytorch处理图像时的通道顺序(颜色,长宽深)
项目颜色通道顺序长宽通道顺序数据类型取值范围PILRGBHWCndarray0-255 (byte)OpenCVBGRHWCndarray0-255 (byte)PyTorchRGB/BGR (取决于如何读取)(N)CHWtensor0-1 (float, 标准化后); 0-255 (int, 未标准化) 注意以下几点: 颜色通道顺序:PIL默认使用RGB顺…...
![](https://img-blog.csdnimg.cn/img_convert/f1e21f19726c58b994594d7f79c4b622.jpeg)
经纬恒润亮相2024世界智能产业博览会
近日,以“智行天下 能动未来”为主题的2024世界智能产业博览会(以下简称“智博会”)在国家会展中心(天津)成功举办。本次智博会上,经纬恒润自主研发的汽车电子产品联合天津(西青)国家…...
![](https://www.ngui.cc/images/no-images.jpg)
Python序列化和反序列化
一.序列化和反序列化 在Python中,序列化(Serialization)和反序列化(Deserialization)是处理对象数据的过程,主要用于对象的存储或网络传输。 序列化(Serialization) 序列化是将Pyth…...
![](https://www.ngui.cc/images/no-images.jpg)
Stream toArray 好过collect
toArray 比collect 更好用,这样就不需要判断Null。 if(_user.getUserRole()!null) {_user.setRole(_roleList.stream().filter(_e->_e.getRoleId()_user.getUserRole()).toArray(Role[]::new)[0]); } if(_user.getUserRole()!null) {_user.setRole(_roleList.s…...
![](https://www.ngui.cc/images/no-images.jpg)
qt/c++/mysql教务管理系统
简介 qt/c/mysql教务管理系统 学生端,教师端,管理员端 演示 qt/c/mysql教务管理系统 源码获取 printf("白嫖勿扰,需要的加v%s","ywj17347418171");...
![](https://www.ngui.cc/images/no-images.jpg)
Echarts公共方法
Vue引入Echarts install 1.安装Echartsnpm install echarts --save 2.项目全局引入形式--#main.js 全局引入形式import * as echarts from "echarts"Vue.prototype.$echarts echarts 公共方法JS /*** author: wangjie* description: 通用echarts图表封装* date: …...
![](https://www.ngui.cc/images/no-images.jpg)
鸿蒙学习(二)
文章目录 1、弹窗2、走马灯(实现轮播图效果)3、注解6、多选框、单选框7、Stack8、TextTimer9、DatePicker 1、弹窗 显示提示信息或者用于用户交互 导入模块 prompt 接口 showToast:显示toast showDialog:显示对话框 showContextMenu:显示上下文菜单 sh…...
![](https://img-blog.csdnimg.cn/direct/4ebfc583cb38474c8b692e53b779cc98.jpeg)
企业机构营销目前106短信群发还有用吗?此文告诉你该如何抉择!
在当今竞争激烈的企业营销环境中,106短信群发平台依然是众多企业机构青睐的营销工具之一。尽管互联网技术的发展带来了多样化的沟通方式,但106短信群发凭借其直达性强、成本低廉、覆盖广泛等优势,仍然保持着不错的营销效果。然而,…...
![](https://www.ngui.cc/images/no-images.jpg)
DJYGUI AI低代码图形编程开发平台:开启嵌入式软件图形编程新纪元
在科技高速发展的当今时代,软件开发行业对创新和高效的需求日益增长。DJYGUI AI低代码图形编程开发平台的出现,为智能屏、物联屏、串口屏等嵌入式显示设备领域带来了全新的机遇。该平台由都江堰操作系统 AI 代码自动生成平台研发,具有显著的优…...
![](https://img-blog.csdnimg.cn/direct/1a9a14c37dc04a6d89ce960ec35958f0.png)
为什么不能在foreach中删除元素
文章目录 快速失败机制(fail-fast)for-each删除元素为什么报错原因分析逻辑分析 如何正确的删除元素remove 后 breakfor 循环使用 Iterator 总结 快速失败机制(fail-fast) In systems design, a fail-fast system is one which i…...
![](https://img-blog.csdnimg.cn/direct/4433a760426f4689964a40fbe788ebf9.png)
python学习-tuple及str
为什么需要元组 定义元组 元组的相关操作 元组的相关操作 - 注意事项 元组的特点 字符串 字符串的下标(索引) 同元组一样,字符串是一个:无法修改的数据容器。 如果必须要修改字符串,只能得到一个新的字符串ÿ…...
![](https://img-blog.csdnimg.cn/direct/a50b5a681e584b40acabde3573e6357e.gif)
Python深度理解系列之【排序算法——冒泡排序】
读者大大们好呀!!!☀️☀️☀️ 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️木道寻的主页 文章目录 🔥前言🚀冒泡排序python实现算法实现图形化算法展示 ⭐️⭐️⭐️总结 🔥前…...
![](https://www.ngui.cc/images/no-images.jpg)
边界框在目标检测中的作用与应用
目标检测是计算机视觉领域的核心任务之一,旨在从图像或视频中识别和定位感兴趣的目标。边界框(Bounding Box)是目标检测中常用的一种表示方法,用于确定目标在图像中的确切位置。本文将详细探讨边界框的概念、它在目标检测中的角色…...
![](https://img-blog.csdnimg.cn/direct/c43b0d18fe56448d9ac9e408af2a0051.png)
linux 环境报错:Peer reports incompatible or unsupported protocol version
出现问题的原因: curl 不兼容或不支持的协议版本。 解决方案: yum update -y nss curl libcurl如此继续之前的操作即可。...
![](https://img-blog.csdnimg.cn/img_convert/5e40fcf6f338810d4883b5f879013d54.jpeg)
深入解析:Java爬虫的本质是什么?
深入解析:Java爬虫的本质是什么? 引言: 随着互联网的快速发展,获取网络数据已成为许多应用场景中的重要需求。而爬虫作为一种自动化程序,能够模拟人类浏览器的行为,从网页中提取所需信息,成为了…...
![](https://img-blog.csdnimg.cn/28bd12af4ea844e895c4cdd8f4feb2e4.jpeg#pic_center)
【Matlab 六自由度机器人】机器人动力学之推导拉格朗日方程(附MATLAB机器人动力学拉格朗日方程推导代码)
【Matlab 六自由度机器人】机器人动力学概述 近期更新前言正文一、拉格朗日方程的推导1. 单自由度系统2. 单连杆机械臂系统3. 双连杆机械臂系统 二、MATLAB实例推导1. 机器人模型的建立2. 动力学代码 总结参考文献 近期更新 【汇总】 【Matlab 六自由度机器人】系列文章汇总 …...
![](https://img-blog.csdnimg.cn/img_convert/19ed52795783bf7dddc724fe2755af28.png)
线下生鲜蔬果店做小程序有什么方法
生鲜蔬果是生活所需,大小商家众多,零售批发各种经营模式,小摊贩或是超市门店都有着目标客户或准属性群体。竞争和获客转化也促进着商家寻找客源和加快线上进程。 尤其是以微信社交为主的私域场景,普客/会员都需要精细化管理营收和…...
![](https://www.ngui.cc/images/no-images.jpg)
几种linux开机自启脚本的方法
几种linux开机自启脚本的方法 1. 脚本添加到init.d目录中2. 创建服务service(推荐)3. /etc/profile & /etc/profile.d(不推荐)4. /etc/rc.local 本文以启动jenkins节点为例,需要持久连接,实现开机自启 …...
![](https://img-blog.csdnimg.cn/direct/87f229192a8c4f18aabd159a4f716e6d.png)
微信小程序template模板引入
如图:temp.wxml是template引入的模板 在two.wxml中: import:是引入temp的页面让template中的内容显示出来在two页面中; include:是显示temp页面内容不在template包裹,template以外的view标签文字和不在view的文字让…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux搭建Socks5网络代理服务器,Centos 8 系统
一、目的用途 用于网络代理转发请求,隐藏真实的请求ip地址,或者用于绕过网络限制的目标服务器,将自己的访问请求到代理服务器,通过网络代理服务器将请求转发到目标服务器 二、安装Socks5前的准备 1、从官网下载ss5安装包…...
![](https://www.ngui.cc/images/no-images.jpg)
C语言初阶——实用调试技巧(新课学习)
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> strcpy 字符串拷贝 char * strcpy (char * destination, const char * source); #include<string.h>//strcpy头文件int main() { char arr1[20] { 0 };//char arr1[20] "woshishui"; ch…...
![](https://www.ngui.cc/images/no-images.jpg)
Java面试题: 什么情况下索引会失效
什么情况下索引会失效 通过执行计划EXPLAIN可以判断索引是否失效 如果KEY和KEY_LEN为空代表索引失效 索引失效的原因 违反最左前缀法则: 如果索引多列,查询需要从索引的最左前列开始且不能跳过索引中的列 如果符合最左前缀法则,但跳跃了其中的索引,只有最左侧的索引会生效…...
![](https://img-blog.csdnimg.cn/direct/56455fe09dff4969974c6e96d35ebace.png)
秒懂设计模式--学习笔记(5)【创建篇-抽象工厂】
目录 4、抽象工厂4.1 介绍4.2 品牌与系列(针对工厂泛滥)(**分类**)4.3 产品规划(**数据模型**)4.4 生产线规划(**工厂类**)4.5 分而治之4.6 抽象工厂模式的各角色定义如下4.7 基于此抽象工厂模式以品牌与系…...
![](https://img-blog.csdnimg.cn/img_convert/b5eb895c527b9e74c388caadba52232d.jpeg)
ai数字人源码部署教程靠谱吗?零基础推荐看哪个?
随着数字人行业前景和应用潜力的不断显现,让许多创业者都有通过ai数字人源码部署来打造一个属于自己的数字人系统,以此吸引用户入驻和获得收益。在此背景下,各式各样的ai数字人源码部署教程不断涌现,为创业者提供学习资源的同时&a…...
![](https://www.ngui.cc/images/no-images.jpg)
质感提升,智能化看齐新势力,魏牌蓝山智驾版实拍
说起魏牌蓝山,不知道大家还记不记得它,这是去年4月上市的一款插电混动、大6座SUV,主打30万级豪华市场。今天呢我们来到一个天台,来看看它的最新版本——蓝山智驾版。一句话点评蓝山智驾版:车内的科技感与高级感有较高水准,明显是朝着新势力“开炮”。优势:1、内饰改动较大…...
![](https://www.ngui.cc/images/no-images.jpg)
Flutter 中的 Viewport 小部件:全面指南
Flutter 中的 Viewport 小部件:全面指南 Flutter 是一个现代的移动和 web 应用开发框架,它允许开发者以一种非常直观和高效的方式构建用户界面。在 Flutter 中,Viewport 是一个非常重要的小部件,它提供了一个滚动视口,…...
![](https://img-blog.csdnimg.cn/direct/ef6f63bece1b4618a55bf7c77962f907.png)
最长递增子序列,交错字符串
第一题: 代码如下: int lengthOfLIS(vector<int>& nums) {//dp[i]表示以第i个元素为结尾的最长子序列的长度int n nums.size();int res 1;vector<int> dp(n, 1);for (int i 1; i < n; i){for (int j 0; j < i; j){if (nums[i]…...
![](https://www.ngui.cc/images/no-images.jpg)
【CSharp】判断目录以及文件是否存在
【CSharp】判断目录以及文件是否存在 1.背景2.判断目录3.判断文件1.背景 我们在进行磁盘IO的时候进行需要判断目录、文件是否存在,根据判断结果再做进一步的操作。 其中判断目录是否存在,涉及Directory.Exists(String) 方法; 命名空间:System.IO 方法功能:确定给定路径是…...
![](https://img-blog.csdnimg.cn/img_convert/94406c7289c5fae009ed9da596a6f081.png)
QLExpress入门及实战总结
文章目录 1.背景2.简介3.QLExpress实战3.1 基础例子3.2 低代码实战3.2.1 需求描述3.2.1 使用规则引擎3.3.2 运行结果 参考文档 1.背景 最近研究低代码实现后端业务逻辑相关功能,使用LiteFlow作为流程编排后端service服务, 但是LiteFlow官方未提供图形界面编排流程。…...
![](https://img-blog.csdnimg.cn/direct/13a8e7dc16534159bc1dbc1a3fa8e3f6.jpeg)
你对仲裁裁决不服怎么办?我教你四个狠招!
你对仲裁裁决不服怎么办?我教你四个狠招! 这个标题是什么意思呢?也就是说,当你(或用人单位)向劳动仲裁委提出仲裁申请后,但劳动仲裁结果没有维护你的权益,或者你不满意,…...