- 博客(179)
- 资源 (10)
- 收藏
- 关注

原创 最新Spring Security实战教程(一)初识Spring Security安全框架
随着Web应用和微服务架构的普及,作为JAVA开发者如何保证系统免受各种安全威胁(如未经授权的访问、数据泄露、跨站请求伪造等)成为一个我们必须要解决的问题。作为Spring生态系统中的核心组件,通过提供认证()与授权()和针对常见攻击等一系列安全功能,为开发者构建安全稳定的应用提供了强有力的支持。是一个基于Spring认证(Authentication): 确定访问者身份的过程。Spring Security通过多种方式(如表单登录、Basic认证、OAuth2等)实现用户身份验证。
2025-03-05 19:11:43
4856
91

原创 2024最新 Jenkins + Docker实战教程(一) - Jenkins介绍及安装
前言什么是JenkinsJenkins的核心功能Jenkins安装DockerWAR文件MacOSWindows测试访问如何干净的重装结语在现代软件开发中,持续集成和持续部署(CI/CD)已经成为不可或缺的一部分。Jenkins作为一个开源的自动化服务器,是CI/CD流程中最常用的工具之一。本教程序系列将深入探讨Jenkins的核心功能、安装与配置、常用插件以及实际使用中的一些最佳实践。Jenkins是一款开源CI/CD软件,用于自动化各种任务,包括构建、测试和部署软件。
2024-05-22 10:34:25
14735
39

原创 在Centos Stream 9上Docker的实操教程(一) - 实操准备篇
本章节主要介绍了Docker的安装以及仓库配置,并run了一个hello-world镜像验证Docker容器的运行正常,如果本文对你有用,还请一键三连多多支持!下一章:在Centos Stream 9上Docker的实操教程 - Docker的常用命令。
2023-05-27 22:54:16
17574
35

原创 使用IDEA开发RabbitMQ教程系列(一) 初识RabbitMQ
项目问题在我们开发项目过程中,我们在进行某些耗时操作的时候,我们需要等待操作完成返回结果,再执行下一步操作;举个栗子(我们模拟一个需求,不考虑采用异步回调的情况)1、用户在系统进行了一个在线话费充值的操作;2、系统收到用户的订单往运营商空充接口进行提单操作;2、运营商空充接口返回充值成功或失败处理信息;3、系统对用户进行成功/失败(返款)操作那么过程中产生的问题就是:运营商接口返回过...
2019-02-20 16:46:13
19330
29

原创 DataTables TreeGrid 插件 可以快速实现树形表格
dataTables.treeGrid插件介绍展现效果使用方法DataTable 渲染JSON数据格式HTML数据格式(以DEMO截图代码为例)插件介绍针对DataTables写的树形表格插件(什么是DataTables? 可以点击访问官网了解)在原DataTables基础上可以快速实现树形表格的渲染:1、支持自定义展开/收缩 图标2、支持自定义缩进距离3、N层子集展开父级收缩 子集统...
2019-01-17 17:38:37
21058
66
原创 前端实现图片防盗链技术详解 - 原理分析与SpringBoot解决方案
在现代 Web 应用中,网站往往需要展示大量图片资源(商品图、文章配图、用户头像等)。若不做防护,其他站点或爬虫可以直接引用这些图片 URL,占用带宽、盗用版权、造成服务器压力过大。为此,我们需要为图片资源加一道“防盗链”保护,确保只有合法来源或携带正确凭证的请求才能成功获取图片。本文博主将带着小伙伴们深入解析防盗链技术原理,并提供前后端完整解决方案。
2025-06-12 08:49:02
1449
56
原创 前端大文件分片上传详解 - Spring Boot 后端接口实现
在很多 Web 应用场景下,我们需要上传体积很大的文件(视频、镜像包、数据包等)。一次性将整个文件上传往往会面临以下问题:网络不稳定时容易中断:导致上传失败,需要重头再来;服务器内存/磁盘压力大:一次性接收大文件可能瞬间占满带宽或写满临时目录;用户体验差:上传过程中无法做到断点续传或重试。为了解决上述问题,分片上传(Chunked Upload)应运而生。它将大文件拆分成一个个小块,按序上传并在后台合并,既可以实现断点续传,也能平滑流量、降低服务器压力。
2025-06-09 15:10:22
2176
72
原创 最新Spring Security实战教程(十七)企业级安全方案设计 - 多因素认证(MFA)实现
在微服务与分布式架构日益普及的今天,传统的 单一凭证(用户名+密码) 已经难以满足企业对于身份验证的高安全性需求。多因素认证(Multi‐Factor Authentication,简称 MFA) 通过用户知道的东西(如密码)+ 用户拥有的东西(如动态验证码)或 用户自身的一部分(如指纹)三种因素的组合,大幅提升了系统防护能力
2025-06-07 00:10:21
1918
79
原创 跨平台桌宠 BongoCat - 让你的数字工作台注入灵魂为你的桌面添加乐趣
在忙碌的工作或学习中,常常需要一些小小的调剂来缓解压力、增加乐趣。而桌面宠物,作为一种趣味化的小工具,正好为我们提供了这种轻松有趣的体验。今天,博主要为大家介绍一个跨平台桌宠——BongoCat。这个萌萌的小猫咪不仅能为你的桌面增添生动的氛围,还能让你感受到无限的欢乐
2025-05-29 14:52:09
2743
79
原创 最新Spring Security实战教程(十六)微服务间安全通信 - JWT令牌传递与校验机制
在目前微服务架构中,服务间的安全通信至关重要。为了解决不同服务之间的认证与授权问题,常常使用 JSON Web Token (JWT) 作为令牌传递机制。JWT 是一种轻量级的令牌格式,包含了丰富的用户身份信息,并且可以被服务端验证。利用 Spring Security 6 和 JWT,我们可以很容易地实现服务间的安全通信,确保服务间的请求只有经过授权的客户端才能发起。
2025-05-26 23:06:22
3482
75
原创 前端图片裁剪上传全流程详解:从预览到上传的完整流程
本文详细介绍了前端实现图片裁剪上传的完整流程,包括本地预览、用户交互裁剪、实时预览裁剪结果、获取裁剪后的File对象以及上传前的处理逻辑。技术选型上,使用原生HTML/JavaScript结合Cropper.js库,提供了完整的代码示例,适合直接应用于实际项目。文章还强调了图片裁剪上传在用户头像设置、商品图上传等场景中的重要性,能够有效减少冗余数据、精准控制展示内容并降低服务器处理压力
2025-05-22 21:00:45
4106
60
原创 兄弟们都在夸我 “领姨夹钱“ - 记我为兄弟们开发的一款欠酒记录小程序
本文介绍了一款名为“欠酒记录”的微信小程序,旨在帮助用户记录和追踪朋友间的酒局欠酒情况。开发者通过结合微信小程序前端、Spring Boot后端、腾讯云AI服务(人脸识别和图像识别)以及腾讯云COS存储,构建了这一应用。小程序的核心功能包括微信授权登录、圈子管理、人员画像维护、拍照记录欠酒、AI解析合并数据以及记录累加与排行。文章详细描述了技术架构、核心功能拆解、数据模型设计以及关键接口的实现。通过这一小程序,用户可以有效管理酒局中的欠酒记录,避免“酒桌老赖”现象,增进朋友间的信任与互动。
2025-05-19 20:45:13
4189
69
原创 最新Spring Security实战教程(十五)快速集成 GitHub 与 Gitee 的社交登录
在微服务与前后端分离架构中,第三方社交登录已成为提升用户体验的重要功能。社交登录可以有效降低用户注册成本,同时利用第三方平台的账号体系,实现快速认证与信息获取。Spring Security 6 作为 Java 生态中的安全框架,通过 OAuth2 协议简化了第三方认证的集成流程
2025-05-15 23:29:33
3576
71
原创 JavaScript异步编程 Async/Await 使用详解:从原理到最佳实践
本文详细介绍了JavaScript中的异步编程技术Async/Await,从背景概念到实际应用,涵盖了语法详解、并发优化、错误处理、异步迭代及常见问题解决方案。Async/Await让异步代码具备同步代码的可读性,简化了回调地狱和Promise链式调用的复杂性。文章还探讨了顺序等待与并行等待的区别,介绍了如何优化并发执行、限制并发数量,并提供了请求重试机制和竞态条件处理的实用代码示例。通过Async/Await,开发者可以更直观地处理异步逻辑,提升代码可维护性与性能。
2025-05-13 20:39:42
4690
62
原创 最新Spring Security实战教程(十四)OAuth2.0精讲 - 四种授权模式与资源服务器搭建
目前OAuth2.0已成为现代应用认证授权的一个标准,从单点登录到微服务架构都依赖其构建安全通道。我们常见的微信、QQ、微博等授权登陆均有在应用。是一种开放的授权框架,允许应用在不暴露用户密码的前提下,安全地代表用户访问第三方服务上的受保护资源。本章节博主将带着大家深入解析四种核心授权模式,并基于手把手搭建安全的资源服务器,助您掌握分布式系统的认证精髓。模式门禁场景类比权限范围风险授权码模式快递员通过App申请临时通行限时、限次低(令牌不暴露)隐式模式访客直接扫码获得短期通行超短时效。
2025-05-08 20:44:48
3455
77
原创 基于nacos实现动态线程池设计与实践:告别固定配置,拥抱弹性调度
在分布式系统架构中,线程池是资源调度的重要工具。传统固定参数的线程池在流量平稳的场景下表现良好,但面对现代互联网业务的潮汐流量特征时,往往会出现资源浪费或处理能力不足的问题。例如 电商促销活动期间访问量激增,正常时段则近乎空闲。固定线程池若过大,会在空闲期造成大量线程资源浪费;若过小,则在高峰期不能及时响应请求,导致排队或超时失败。为此,为了保证高峰期的吞吐量与低谷期的资源利用率,我们需要一个能够在运行时根据业务负载自动扩容和收缩的线程池。
2025-05-06 20:06:14
2905
82
原创 前端函数防抖(Debounce)完整讲解 - 从原理、应用到完整实现
在我们日常前端开发中,高频触发的事件(如输入框输入、窗口缩放、滚动事件)可能导致性能问题甚至引发BUG。函数防抖(debounce)是一种常见且高效的性能优化手段,用于限制高频事件触发下的函数调用次数,从而减少不必要的计算、网络请求或 DOM 操作。本文博主将带着小伙伴一起深入解析防抖机制的原理、六大应用场景,并提供可直接复用的代码示例。函数防抖是前端性能优化中的一项基础技术,适用于各种需要限制高频事件调用的场景,通过本文介绍的定时器逻辑或成熟的Lodash 工具库,就能快速落地。
2025-05-01 12:32:07
5151
80
原创 最新Spring Security实战教程(十三)会话管理机制 - 并发控制与会话固定攻击防护
在Web应用安全体系中,会话管理是认证授权后的重要防线。攻击者常通过会话劫持与会话固定突破系统边界,而业务系统则面临并发滥用带来的资源风险。的会话管理模块由与一系列共同协作,负责在用户登录或访问受保护资源时执行统一的会话检查与策略。默认情况下,框架允许单个用户拥有无限多个并发会话,而在每次登录时会执行会话固定保护策略,将旧Session ID迁移到新Session中,以防止攻击者利用已有的Session ID进行劫持。在本章节博主将基于,带着小伙伴深入解析会话管理的安全实践。
2025-04-28 09:45:00
4418
75
原创 最新Spring Security实战教程(十二)CORS安全配置 - 跨域请求的安全边界设定
我们日常开发中,跨域资源共享(CORS)已成为前端与后端分离架构的必备能力。正确配置CORS是后端安全边界的重要一环。但安全与便利的天平往往难以把握——过于宽松的配置可能导致敏感数据泄露,过于严格的策略又会影响正常业务交互,本文我们继续实战教程讲解CORS安全配置。跨域请求是指浏览器在一个域(Origin A)加载的脚本访问另一个域(Origin B)的资源。为保护用户数据,浏览器默认禁止跨域访问,除非服务器在响应头中明确允许。CORS机制通过。
2025-04-24 10:15:00
4823
76
原创 前端实现视频文件动画帧图片提取全攻略 - 附完整代码样例
相信很多小伙伴在一些短视频平台上传视频的时候,系统会自动帮我们生成一些视频中的画面帧的图片,让我们作为视频封面的功能,那么这些短视频平台是如何从视频中抽取关键帧来作为封面、生成缩略图,或用于制作动图预览的?今天博主就带着大家一起来探讨这个问题,当然实现画面帧的方式前端和后端均可实现,具体要看小伙伴们的应用场景,这里我们先介绍前端的实现方式,后续博主再出一篇 基于JAVA实现的视频画面帧教程~至此在纯前端环境下基于的视频帧提取方案已经演示完毕了,在处理一些格式简单、帧数较少的场景,直接使用Canvas。
2025-04-21 17:54:29
4979
72
原创 最新Spring Security实战教程(十一)CSRF攻防实战 - 从原理到防护的最佳实践
在前面学习的章节中,相信大家一定看一个配置.csrf(), 回忆一下之前使用默认页登录的时候,该配置默认开启,主要做用于CSRF防护, 如果你现在还不了解什么是 CSRF 防护,没关系通过本章节,博主带着大家一起深入学习这个知识点~// 使用Redis存储CSRF令牌(分布式场景)@Bean@Override@Override} else {@Override= null?前端演示代码// 初始化时获取CSRF Token});
2025-04-17 22:56:41
3449
84
原创 TypeScript 进阶指南 - 使用泛型与keyof约束参数
在TypeScript中,泛型让你能够编写通用、高复用的代码,而keyof操作符则可以在编译期间获取某个对象的属性名列表。将两者结合起来,你可以轻松地实现对对象属性的安全访问、更新等操作,并在编译期间捕获许多潜在的错误。那么今天博主就来和小伙伴们详细讲解如何使用泛型和keyof来约束参数,并通过完整的代码示例让大家快速掌握~通过本篇文章的示例,小伙伴们可以看到TypeScript的泛型和keyof操作符为编写类型安全且灵活的代码提供了强有力的支持。泛型允许代码在不牺牲类型安全性的前提下复用逻辑。
2025-04-14 20:40:52
2990
56
原创 最新Spring Security实战教程(十)权限表达式进阶 - 在SpEL在安全控制中的高阶魔法
博主在持续更新教程过程中,有一些小伙伴总会私信问到之前关于ABAC属性权限模型最新Spring Security实战教程(六)最新Spring Security实战教程(六)基于数据库的ABAC属性权限模型实战开发进行了解大家最关心的问题就是:为什么在上下文中传入了对应的自定义策略条件表达式,就能进行更细粒度控制?针对这些问题,博主觉得还是有必要再补充一下SpEL在中的一些应用技巧有时内置的 SpEL 表达式无法满足业务需要,我们可以扩展 Spring Security,增加自定义的安全表达式。
2025-04-11 08:15:00
4708
85
原创 最新Spring Security实战教程(九)前后端分离认证实战 - JWT+SpringSecurity无缝整合
又是新的一周,博主继续l来给大家更新实战教程系列啦~ 通过前面的章节教程从认证到授权,相信大家已经基本了解的工作原理。但在前后端分离架构成为主流的今天,传统的认证模式面临跨域限制、服务端状态维护等难题。作为无状态令牌方案,凭借其自包含、易扩展的特性,成为现代分布式系统的首选认证方案。那么本章节,博主就带着大家一起来进行前后端分离认证实战,手把手教构建安全的JWT认证体系!自定义继承,重写方法,注入UserMapper以及roleMapper。
2025-04-08 09:00:00
4421
76
原创 前端AJAX请求上传下载进度监控指南详解与完整代码示例
在日常 Web 开发中,被广泛用于异步请求数据,而无需刷新整个页面。然而,当涉及到上传下载文件或执行长时间运行的任务时,为了提升用户体验通常我们需要显示执行的进度条,那么监控请求的进度就变得尤为重要。这里博主给大家讲解和Fetch API以及Axios封装在进度监控上不同的实现方式进度监控的核心场景 :1. 大文件上传/下载2. 实时数据传输(如视频流)3. 长耗时API请求4. 用户交互反馈优化本篇文章介绍了如何在前端请求中监控上传和下载进度,并提供了完整的前端和后端代码示例。
2025-04-04 23:18:50
7160
83
原创 最新Spring Security实战教程(八)Remember-Me实现原理 - 持久化令牌与安全存储方案
在我们日常开发中登陆后台,“”(记住我)功能是一种常见的安全增强机制,允许用户在关闭浏览器后仍然保持登录状态,而无需重新输入用户名和密码。提供了多种方案,最常用的是基于哈希的Token方案和持久化令牌方案。本章节博主将详细讲解这两种方案的实现,带大家快速入门!在小伙伴们实际开发中可进行各自需求的改造!在中,的核心作用是在会话失效后依然允许用户自动登录。其基本工作流程(以更常用的持久化令牌方案为例用户登录成功后,如果勾选了“记住我”,服务器会创建一个,并存储在客户端的Cookie中。
2025-04-02 08:45:00
4327
50
原创 最新Spring Security实战教程(七)方法级安全控制@PreAuthorize注解的灵活运用
在实际项目中,安全控制不仅体现在URL拦截层面,方法级安全控制也越来越受到重视。提供了多种方式实现方法级安全,通过方法注解体系,这种细粒度控制使得我们能够在方法调用前、调用后,甚至返回值处理阶段实施安全检查,真正成为开发者保护服务接口的重要手段,那么本章节博主将带着大家剖析注解的核心原理、SpEL表达式机制,并通过的示例代码演示如何在实际项目中灵活运用该注解实现细粒度的权限控制。注解可以在方法执行前对传入的参数、当前用户信息、认证状态等进行校验,从而决定是否允许方法执行。
2025-03-28 10:15:00
4962
65
原创 最新Spring Security实战教程(六)基于数据库的ABAC属性权限模型实战开发
今天博主又抽空来给小伙伴更新教程啦,上个章节中我们讲解了如何通过数据库实现基于数据库的动态用户认证,大家可能发现了,项目中是基于RBAC角色模型的权限控制,虽然能满足大多数场景,但在面对复杂、细粒度的权限需求时可能会力不从心。基于属性的访问控制(ABAC)模型则通过评估用户、资源、环境等多种属性,实现更加灵活的权限控制。例如,某个菜单的访问可能不仅取决于用户角色,还取决于用户的部门、时间或其他属性。因此,需要在权限验证时动态获取这些属性,并进行评估。那么本章节我们就来讲解基于数据库的ABAC属性权限模型。
2025-03-26 09:30:00
4076
46
原创 前端开发中深拷贝的循环引用问题:从问题复现到完美解决
今天在公司进行某功能复盘的过程中,前端的小伙伴编写的某个方法中对数据进行了深拷贝功能,只要进入该方法就会出现Maximum call stack exceeded(超出调用栈)错误,其次使用JSON.parse序列化时也会出现错误,这里博主特做一次记录,方便大家避雷!之所以出现超出调用栈错误,因为深拷贝的本质是递归地复制对象及其嵌套的所有属性 ,确保新对象与原对象完全独立。当对象中存在循环引用时,传统的递归深拷贝方法就会陷入无限循环。
2025-03-20 12:15:00
3455
53
原创 最新Spring Security实战教程(五)基于数据库的动态用户认证传统RBAC角色模型实战开发
在上一章节中,我们讲解了基于内存的用户认证,也提到了实际开发生产中,更多使用的还是基于数据库的动态用户认证 ,因为在企业应用中,用户、角色、权限管理通常都存储在数据库中。本章节博主带着大家以MySQL数据库为例,从用户(sys_user)、角色(sys_role)用户角色()表出发,演示如何使用动态加载用户信息、角色,实现基于数据库的认证在确保数据库能正常链接后,接下来就跟着博主一起编写我们的业务代码吧自定义继承,重写方法,注入UserMapper通过用户名查询数据库数据,同时将用户的角色集合一并赋值;
2025-03-19 08:45:00
5082
51
原创 最新Spring Security实战教程(四)基于内存的用户认证
又是新的一周,博主继续来给大家更新实战教程了,在上一个章节中我们详细介绍了的底层原理,本章节博主将带着大家介绍如何在中实现基于内存的用户认证。虽然基于内存的用户认证,实际开发来说相对来说用的比较少,但某些场景下(如:开发阶段、原型验证、演示环境搭建、单元测试/集成测试、或甚至不需要数据库的简单系统),基于内存的用户认证方式就足以满足需求,为了应对这样需求,博主觉得还是要必要聊一聊基于内存的用户认证。通过本章节的配置示例,相信你已经可以使用的基于内存认证方式来快速搭建安全认证体系。
2025-03-17 08:45:00
4109
48
原创 智能SQL客户端和数据报表工具Chat2DB v0.3.7 二次体验
Chat2DB【阿里巴巴开源Chat2DB v1.0.11 初体验】Chat2DB经过这一年多的时间,再次使用体验Chat2DB不得不说让我非常惊讶,无论是界面还是功能都有了很大的提升!当然也有博主个人认为的一些槽点!下面跟着博主一起来感受最新版Chat2DB的魅力!虽然是时隔一年多再次体验Chat2DB,但在这一年多的时间间隔里,的的确确Chat2DB是做得越来越好了,无论界面还是功能都有了很大的提升,当然也在体验过程中发现了一点点的问题,毕竟开源免费版本!
2025-03-13 02:20:23
4015
51
原创 最新Spring Security实战教程(三)Spring Security 的底层原理解析
相信通过前面两个章节的讲解,大家已经对有了一个初步认识,今天这个章节我们主要聊一聊的底层原理。为什么我们只要简单的一个配置就可以实现我们想要的功能?实际上的Servlet支持就是基于Servlet过滤器Filter!Spring Security 的设计充分考虑了扩展性。自定义 Filter:在现有 FilterChain 中插入新的安全过滤器;自定义 AuthenticationProvider:实现特定业务场景下的身份验证;自定义 AccessDecisionManager:满足细粒度的授权需求。
2025-03-10 15:17:32
3926
46
原创 最新Spring Security实战教程(二)表单登录定制到处理逻辑的深度改造
通过上一章节《最新Spring Security实战教程(一)初识Spring Security安全框架》的讲解介绍相信大家已经认识安全框架,在我们创建第一个项目演示中,相信大家发现了默认表单登录的局限性界面风格与业务系统不匹配登录成功/失败处理逻辑固定缺乏扩展能力(如验证码、多因子认证)本章节我们将默认表单进行登录定制到处理逻辑的深度改造到这里有小伙伴又要说了,每次密码都是自动生成的UUID,能自定义用户名密码,答案是肯定的。提供了在Spring Boot配置文件设置用户密码功能。
2025-03-06 11:45:00
4384
55
原创 前端请求乱序问题分析与AbortController、async/await、Promise.all等解决方案
在我们日常前端开发过程中,常常需要发起多个异步请求去获取数据。然而,当多个请求并发执行时,可能因网络延迟、服务器响应速度差异等问题导致响应顺序与发送顺序不一致,这种现象称为请求乱序。这种问题在分页加载、实时搜索、连续数据提交等场景中尤为突出,可能导致数据错乱、状态不一致等严重问题。接下来博主针对上述这些问题,和大家分享一下目前常见的几种解决方案请求顺序管理需要根据具体业务场景进行权衡取舍。
2025-03-01 09:00:00
5700
51
原创 基于MyBatis-Plus Dynamic-Datasource实现 SaaS 系统动态租户数据源管理
在我们开发SaaS(软件即服务)系统中,多租户架构是核心设计之一。共享数据库,共享表(通过 tenant_id 字段隔离)共享数据库,独立表(不同租户使用不同表)独立数据库,独立库(每个租户拥有独立数据库)上述方案中,共享表(通过 tenant_id 字段隔离)而独立数据库方案虽然能提供最强的数据隔离性,但需要动态管理大量数据源。针对这个需求场景,博主将通过 MyBatis-Plus 的 dynamic-datasource 组件,实现租户动态注册数据源的能力,满足SaaS系统的灵活扩展需求。
2025-02-28 08:32:47
3927
53
原创 ThreadLocal的原理以及实际应用技巧详解 - 如何在身份认证场景Token中传递获取用户信息
/租户ID//用户ID// Getter 和 Setter 方法提供了一种简单的线程数据隔离方式,使每个线程可以拥有独立的数据副本。底层实现依赖于每个线程内部的,通过弱引用机制以及数组存储来实现数据隔离和查找。在实际应用中,常用于保存线程上下文、数据库连接、事务管理等场景相信看到这里,通过博主的讲解以及代码示例,相信小伙伴们已经掌握了ThreadLocal的原理及使用,如果本文对您有所帮助,希望一键三连给博主一点点鼓励,如果您有任何疑问或建议,请随时留言讨论!
2025-02-17 17:43:17
3954
42
原创 Spring Boot 整合 ShedLock 处理定时任务重复执行的问题
在分布式系统中,定时任务的执行往往需要考虑到多个实例的并发执行问题。假设一个定时任务会在多个节点上并发执行,可能导致重复执行,甚至引发数据异常或系统不一致问题。为了解决这一问题,ShedLock是一个简单而有效的解决方案,它可以确保在分布式环境中,只有一个节点在某一时刻执行指定的定时任务。ShedLock是一个轻量级的 Java 库,用于解决分布式系统中定时任务的重复执行问题。它的核心思想是在数据库中加锁,确保在分布式环境下,只有一个节点能够在指定时间执行某个任务。ShedLock可以与。
2025-01-21 21:12:52
5551
53
原创 在Spring Boot中使用SeeEmitter类实现EventStream流式编程将实时事件推送至客户端
是浏览器与服务器之间的一种通信机制,允许服务器向客户端发送事件流。与WebSocket不同,SSE是单向通信,适用于需要实时更新数据的场景,如通知、新闻推送、实时数据更新等。SSE的工作方式是:客户端发起一个HTTP请求,服务器返回一个持续开放的响应流。相信大家通过博主的简单示例,你已经学会了如何在 Spring Boot 中使用SeeEmitter实现流式编程(这一机制非常适合实时数据推送、事件驱动架构以及微服务中的异步消息处理。通过WebFlux的非阻塞能力,SeeEmitter。
2025-01-20 19:47:50
4890
55
原创 实现重试只知道Spring Retry?试试Spring Boot 整合 Fast Retry 来实现重试机制
在外面日常开发中,服务之间的调用往往存在延迟和失败的情况。比如之前博主写的一篇【Spring Boot集成 Spring Retry 实现容错重试机制并附源码】短信发送远程服务调用争抢锁网络延迟服务宕机或临时故障等问题。为了提高服务的可靠性,我们可以使用重试机制来处理这些问题,之前我们已经介绍了,今天我们介绍另外一款轻量级的Fast Retry库。Fast Retry是一个轻量级的 Java 重试库,它可以方便地为方法调用添加重试机制。
2024-10-24 19:59:43
11851
44
Spring Boot集成OpenPDF和Freemarker实现PDF导出功能教程配套源码
2024-07-28
Spring Boot 实现 AOP 动态热插拔功能 教程配套源码
2024-07-01
Spring Boot 3 整合 SpringDoc OpenAPI 生成接口文档教程配套源码
2024-06-20
Spring Boot集成 Spring Retry 实现容错重试机制教程配套源码
2024-06-13
Spring Boot整合Redis实现发布/订阅功能教程配套源码
2024-06-10
Spring Boot中整合Jasypt 使用自定义注解+AOP实现敏感字段的加解密教程配套源码
2024-06-09
Spring Boot通过自定义注解和Redis+Lua脚本实现接口限流教程配套源码
2024-06-09
dataTable.fixedColumns.js修复版
2020-03-07
Spring Boot整合Redis通过Zset数据类型+定时任务实现延迟队列教程对应源码
2024-06-09
表格固定列插件修复版本 - dataTable.fixedColumns.js
2019-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人