- 博客(1364)
- 资源 (1)
- 收藏
- 关注

原创 实战干货!Spring Cloud Gateway 整合 OAuth2.0 实现分布式统一认证授权!
大家好,我是不才陈某~这是《Spring Cloud 进阶》第15篇文章,往期文章如下:五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强?openFeign夺命连环9问,这谁受得了?...
2021-12-21 08:10:00
6806
2

原创 OAuth2.0实战!使用JWT令牌认证!
点击上方☝码猿技术专栏轻松关注,设为星标!及时获取有趣有料的技术大家好,我是不才陈某~这是《Spring Security 进阶》的第3篇文章,往期文章如下:实战!Spring Boo...
2021-12-06 08:10:00
1283

原创 妹子始终没搞懂OAuth2.0,今天整合Spring Cloud Security 一次说明白!
点击上方☝码猿技术专栏轻松关注,设为星标!及时获取有趣有料的技术大家好,我是不才陈某~周一发了Spring Security 系列第一篇文章,有妹子留言说看了很多文章,始终没明白OAut...
2021-12-02 08:10:00
1389

原创 实战!Spring Boot Security+JWT前后端分离架构登录认证!
点击上方☝码猿技术专栏轻松关注,设为星标!及时获取有趣有料的技术大家好,我是不才陈某~认证、授权是实战项目中必不可少的部分,而Spring Security则将作为首选安全组件,因此陈...
2021-11-29 08:10:00
2621
1
转载 月薪已炒到6W?强烈建议后端人冲一冲这个新兴领域
是指运行一段具有特定功能的代码块的行为,以增强其处理能力,实现更复杂的任务,使大模型能够集成外部工具和资源,提升交互性和实用性。AI大模型技术实战—— Transformer 架构的 核心原理、应用 Fine-tuning 技术,精准微调AI大模型,!制造、医疗、金融等各行业都在加速AI应用落地,未来企业更看重能用AI大模型技术重构业务流的技术人。老师们将大模型技术原理讲透的同时,还将丰富的商业化AI应用项目无偿分享,帮大家快速打通。课程开班58期,已为20000+学员服务,口碑爆棚,从!
2025-06-11 13:42:30
101
转载 两万字详解,如何为开放平台设计一个安全好用的 OpenAPI
在一开始的时候,大多数服务端对于用户密码的存储肯定都是明文的,这就导致了一旦存储密码的地方被发现,无论是黑客还是服务端维护人员自己,都可以轻松的得到用户的账号、密码,并且其实很多用户的账号、密码在各种网站上都是一样的,也就是说一旦因为有一家网站数据保护的不好,导致信息被泄露,那可能对于用户来说影响的则是他的所有账号密码的地方都被泄露了,想想看这是多少可怕的事情。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。
2025-06-10 13:41:01
54
转载 拒绝重复代码,封装一个多级菜单、多级评论、多级部门的统一工具类!
因此,在设计数据库评论字段时,需要权衡使用treepath字段和父评论ID字段的优缺点,并根据具体的应用场景和需求做出选择。统一工具类,首先我们将元素分为父子两类,让其构建出一个小型树,然后我们将构建的子元素和下次遍历的父节点传入,递归的不断进行,这样就构建出了我们最终的想要实现的效果。你能看到很多人都在介绍如何实现多级菜单的效果,但是都有一个共同的缺点,那就是没有解决代码会重复开发的问题。如果你更关注写入操作的效率和数据一致性,并且树的深度不会很大,那么使用父评论ID字段来实现多级评论可能更简单和高效。
2025-06-09 13:40:39
11
转载 SpringBoot 接口防刷的5种方案,太强了!
然后,我们移除过期的请求记录,统计当前窗口内的请求数。令牌桶算法是一种更加灵活的限流算法,它就像一个装有令牌的桶,系统会以固定的速率向桶中添加令牌,每个请求需要从桶中获取一个令牌才能被处理。恶意的高频请求如同隐藏在暗处的“杀手”,不仅会大量消耗服务器宝贵的资源,还可能引发数据异常,严重时甚至会导致整个系统瘫痪,给业务带来不可估量的损失。阿里巴巴开源的 Sentinel 是一个强大的流量控制组件,它就像一个智能的“交通警察”,可以对系统的流量进行实时监控和控制,提供了丰富的限流、熔断、系统保护等功能。
2025-06-06 13:40:42
50
转载 下半年Java就业要炸了
这份资料对标字节3-1后端工程师应具备的技能,详细文档结构如下:后端小伙伴可扫码领取一份(定期更新)。想高效快速地拿到心仪offer,一定要从面试官的角度出发,提前做好功课,了解求职市场的最新风向。由字节3-1级大佬牵头,拉了阿里、腾讯、美团等大厂的技术大佬一起整理,全是他们面试时最爱问的。等,可用来突击面试拿offer,也可用来精准学习就业提升!个人技术扎实,机会永远不缺~“挖坑题” 和 “加分项”字节后端面试上岸手册。进阶为高级后端工程师。
2025-06-05 10:20:26
15
转载 别再滥用模糊查找了,来试试 MySQL 多值索引!
多值索引可以对 JSON 字段建立索引,例如 related_product_Ids 字段在数据库中是 JSON 类型,值为。在优惠券配置后台中,需要具备优惠券模版检索能力,其中模板检索条件是根据商品 ID,检索哪些优惠券模版关联了指定商品。,当对该字段建立多值索引时,可以建立三条索引记录,110,111,112 ,因此单独查询任一商品Id,均可以索引到 记录 A。注意 表达式变成了,对普通的索引来说,每一条记录仅对应一条索引记录,对多值索引而言,一条记录可以对应多条索引记录。此种方式就万无一失了吗?
2025-06-03 13:40:26
18
转载 Spring 这 10 个扩展点,开发效率直接翻倍!
在 run 方法中,我们可以编写在项目启动时需要执行的附加功能代码,例如加载系统参数、初始化资源、预热缓存等。例如,如果我们希望在同一个线程中从 Spring 容器中获取的所有 bean 都是同一个对象,该怎么办呢?有时我们需要在某个配置类中导入其他一些类,并且导入的类也会被添加到 Spring 容器中。过去,在开发接口时,如果发生异常,我们通常需要给用户一个更友好的提示。为了解决这个问题,我们通常在接口中捕获异常。有时,我们需要在关闭 Spring 容器之前做一些额外的工作,例如关闭资源文件。
2025-06-02 13:41:01
21
转载 Java利器:Pair和Triple无缝解决多值返回,编写高效代码!
一旦创建,其状态就无法修改,因此它是线程安全的。不过需要注意的是,如果存储在三元组中的对象是可变的,那么三元组本身实际上就不再是不可变的。类为我们提供了一种便捷的方式来组织和处理这种具有固定顺序的数据,让我们可以在不创建专门类的情况下轻松返回三个值,减少了创建和维护多个变量的复杂性,使代码更加简洁。是一个可变的键值对类,它允许我们在创建后动态修改键和值,这为我们的编程带来了更大的灵活性。的一个不可变子类,一旦创建完成,其键和值就不能再被改变,这使得它是线程安全的,适合在多线程环境下使用。
2025-05-29 13:41:04
31
转载 网易二面:token是用来鉴权的,那session是用来干什么的?
即使JWT是无状态的,但在某些应用场景中,仅依赖JWT可能存在一些安全问题,例如Token的泄露或滥用。Session可以作为一个额外的安全层,确保Token即使有效,也必须在服务器的Session管理器中存在对应的会话。如果用户选择了“记住我”选项,Session可以记录这个状态,并在JWT过期后,通过Session来决定是否允许继续使用旧的Token。在某些场景下,追踪用户状态是必要的,例如监控用户的活跃度、登录历史等,这些信息可以通过Session进行管理。结合JWT和Session的优势。
2025-05-27 13:40:14
33
转载 公共字段自动填充的6种神技,开发效率翻倍!
在开发外卖系统订单模块时,我发现每个实体类都包含create_time、update_by等重复字段。推荐一下陈某新出的小册子总结了企业中后端的各种核心问题解决方案,包括JVM、数据库、性能调优等企业级落地40个痛点问题以及解决方案....本文将分享一套经过生产验证的自动化方案,涵盖MyBatis-Plus、AOP、JWT等六种核心策略,助你彻底摆脱公共字段维护的烦恼。随着Spring Data JPA的演进,未来可以探索与Reactive编程的结合,实现全链路的非阻塞式自动填充。新功能开发效率提升40%
2025-05-26 13:40:45
32
转载 再见了SpringBoot,后端AI已成气候!
是指运行一段具有特定功能的代码块的行为,以增强其处理能力,实现更复杂的任务,使大模型能够集成外部工具和资源,提升交互性和实用性。AI大模型技术实战—— Transformer 架构的 核心原理、应用 Fine-tuning 技术,精准微调AI大模型,!制造、医疗、金融等各行业都在加速AI应用落地,未来企业更看重能用AI大模型技术重构业务流的技术人。老师们将大模型技术原理讲透的同时,还将丰富的商业化AI应用项目无偿分享,帮大家快速打通。课程开班58期,已为20000+学员服务,口碑爆棚,从!
2025-05-23 13:53:43
103
转载 MapStruct 超神进阶用法,让你的代码效率提升十倍!
比如 target 中有个 List ids,我们希望如果 source 中ids 为 null 时,target 的 ids 设置为空 list。总的来说, MapStruct 是一个强大且灵活的映射框架,很好的解决有关对象转换的问题,实现了代码的简洁和性能的兼顾。通过在编译时生成映射代码,MapStruct 提供了类型安全的映射,并能在编译时就发现潜在的错误。简化了 Java Beans 之间转换的代码,自动生成使用简单的赋值语句完成的映射实现。,即 target 中对应的字段也设置为 null。
2025-05-21 13:40:18
42
转载 SpringBoot+责任链 实现接口动态编排!
事先定义好的执行顺序”,可以保存到数据库中项目启动的时候加载到内存,或者直接维护到Redis中。这个接口中包含十几个功能点,比如:入参校验、系统配置校验、基本数据入库、核心数据入库、发送给消息中心、发送给 MQ.....业务上下文,用于每个子类(每个功能点)之间的数据通信。其实要实现这个功能使用 LiteFlow 框架最合适,文档友好,接入简单,功能强大。因此使用责任链模式实现。不同的客户对这个接口的要求也不同,有些功能不需要,有些需要添加特定功能。传入不同的index顺序,业务逻辑中执行的顺序也不同。
2025-05-20 13:39:36
71
转载 离谱!一边在裁员,一边高薪招人。
之前邻近毕业,加之在学校接触的教育非常浅且脱离企业实际需求,非常焦虑,害怕找不到好工作影响以后的职业发展,所幸做了正确的选择,我们也没让他失望。无论你是在职人员想寻求新的职业发展、还是即将/未来面临找工作的在校生、再或者是想追赶AI前沿技术创业做兼职,我都推荐你可以了解一下,这可能是。,授人以鱼不如授人以渔,学完后还会具备举一反三的能力,无论进入什么行业,算法岗位和项目均能胜任。,覆盖非常全面,适用于所有行业的算法岗位,整个课程更注重带领学生。等亲自研发和授课,深度广度均满足大厂用人要求,专业老师。
2025-05-19 10:00:33
388
转载 Java 导出 Excel 利器:JXLS
但是针对复杂的excel,有固定的样式、合并单元格、动态列等各类要求,导致excel 导出需要花很大一部分精力去写代码。Area是jXLS中的一个主要概念,它本质上代表了一个矩形区域,这个区域包含了需要进行数据转换的单元格。符号中,比如我们需要把数据输出的同时进行计算,比如我们数据中的比率值是1(excel上最终需要显示为1%)。通过在Excel模板中使用类似jsp的标签,jXls提供了极高的灵活性,可以轻松地生成各种格式的报表。jxls是一个轻量级的Java库,用于基于模板的Excel报表生成。
2025-05-16 13:46:40
42
转载 封神!5月最强Java面试题库
这套资料就是你的 "作弊码"—— 别人踩过的坑、总结的套路、提炼的精华,全都打包给你了。✅ 把后端核心知识重新捋一遍,别再靠 “重复搬砖” 混日子。好多人觉得干得久就经验多,其实在技术圈,有句话特扎心:“我整理了300+Java求职者血泪经验,准备了超实在的。(扫码后回复 "Java",自动发送文件,永久有效!扫码不过3秒钟,却可能是你拿到高薪Offer的转折点。现在就行动,别让 "等明天" 变成 "再一年"!▶ 每道题附 "答题思路+源码图解+知识延伸"干了七年,可能就一年经验持续用了六年。
2025-05-15 10:20:40
27
转载 别再用雪花算法生成ID了!试试这个吧
对比来看,我们之前申请ID都是一次自增1,而这种预申请一批的方式,是一次申请N个ID,自增N,可以减少请求量和并发。如果申请了一段区间的id,但是没有用完,服务器停服再启动后会再申请一段新的,原来未使用的ID就被浪费了。然而这种方式部署限制和消耗都太大,而且我们的登录服是多开的,即使在单登录服内控制串行,多个进程也不好控制,因此这个初始的方案只能被pass。这种方式的特点就是,登录服服务过程中,对应数据库里的 left 为 0,如果停了,数据库里 left 为号段内剩余的可用数量。
2025-05-14 13:40:23
73
转载 多租户系统数据隔离实现方案
多租户问题,其是一种架构设计方式,就是在一台或者一组服务器上运行的SaaS系统,可以为多个租户(客户)提供服务,目的是为了让多个租户在互联网环境下使用同一套程序,且保证租户间的数据隔离。这种方案是多租户方案中最简单的数据隔离方法,即在每张表中都添加一个用于区分租户的字段(如tenant_id或org_id啥的)来标识每条数据属于哪个租户,当进行查询的时候每条语句都要添加该字段作为过滤条件,其特点是所有租户的数据全都存放在同一个表中,数据的隔离性是最低的,完全是通过字段来区分的,很容易把数据搞串或者误操作。
2025-05-13 13:40:44
60
转载 Nacos 3.0 重磅更新,新特性真香!
自诞生以来,Nacos 凭借其易用性和强大的功能,赢得了广大开发者的青睐,成为构建稳定、高可用微服务体系的关键组件。传统的监听通常需要指定确切的服务名或配置 ID,而 模糊监听允许用户根据特定的模式或前缀来监听服务或配置的变化。分布式锁是一种在分布式环境下控制多个进程对共享资源进行互斥访问的机制,它可以有效地解决分布式系统中的并发问题,例如防止多个节点同时修改同一份数据,保证数据的一致性。然而,在 AI 应用的开发和部署过程中,如何有效地管理和更新模型、提示词等内容,成为了新的挑战。
2025-05-06 13:40:46
84
转载 SpringBoot 数据权限新姿势,注解+动态SQL真香!
easy-data-scop 是一个通过动态注入SQL实现的数据权限项目。支持MyBatis、MyBatis-plus、MyBatis-flex。推荐一下陈某新出的小册子总结了企业中后端的各种核心问题解决方案,包括JVM、数据库、性能调优等企业级落地40个痛点问题以及解决方案....其他的不用动,使用注解中的 merge 属性,在keys中将两个前两个key都加上。这是一张简单的用户表,接下来我们将为这张表编写以下数据权限。4.看年龄为111、222的人(merge属性)看年龄为111、222的人。
2025-04-27 13:42:18
63
转载 网易终面:100G内存下,MySQL查询200G大表会OOM么?
于是清空链表末尾Pm数据页内存,存入Px的内容,放到链表头部。可以看到,这个策略最大的收益,就是在扫描这个大表的过程中,虽然也用到了BP,但对young区完全没有影响,从而保证了Buffer Pool响应正常业务的查询命中率。一个数据页里面有多条记录,这个数据页会被多次访问到,但由于是顺序扫描,这个数据页第一次被访问和最后一次被访问的时间间隔不会超过1秒,因此还是会被保留在old区域。之后要访问一个新的不存在于当前链表的数据页,这时依然是淘汰掉数据页Pm,但新插入的数据页Px,是放在LRU_old处。
2025-04-23 13:40:50
55
转载 退出登录时如何借助外力使JWT令牌失效?
但是JWT呢,它是不存在服务器端的啊,好的那我删存在客户端的JWT行了吧。黑名单的逻辑也非常简单:注销时,将JWT放入redis中,并且设置过期时间为JWT的过期时间;白名单的逻辑很简单:认证通过时,将JWT存入redis中,注销时,将JWT从redis中移出。用JWT就因为它的无状态性,这时候又要保存它的状态?逻辑很简单,直接将退出登录的JWT令牌的jti设置到Redis中,过期时间设置为JWT过期时间即可。思想很简单,JWT既然是无状态的,只能借助Redis记录它的状态,这样才能达到使其失效的目的。
2025-04-21 10:20:17
95
转载 告别硬编码:阿里开源的动态脚本引擎 QLExpress ,真香!
此外,运行时的临时变量创建采用了缓冲池技术,以确保高效的运行时性能,使其与一些性能优秀的脚本引擎(如Groovy)相当。作为阿里巴巴开源的一款轻量级动态脚本引擎的主要功能和应用场景,并深入讲解了其在规则引擎和业务场景中的使用优势。)是阿里巴巴开源的一门动态脚本引擎解析工具,起源于阿里巴巴的电商业务,旨在解决业务规则、表达式、数学计算等动态脚本的解析问题。引擎,以其轻量、高效、简洁的优势,为复杂业务逻辑的动态处理提供了一种创新的解决方案。在实际项目中,可能需要更复杂的脚本和上下文,以适应业务需求。
2025-04-16 13:40:52
58
转载 @Transactional + @Async 有大坑!
方法中保存到数据库的其余代码在不同的线程上运行,且数据不同,这就使得应用程序的行为变得不可预测。方法是一种非常巧妙的设计,它既可以通过并行执行操作来提高性能,又可以确保特定内部操作的数据一致性,实现了性能和数据一致性的双赢。例如,我们期望在发生失败时,一系列仅包含事务的方法调用中的所有代码都会回滚。实际上,我们是在该方法的周围创建了一个事务单元,并且这个事务单元会在与调用线程不同的线程上运行。方法时,Spring 会发挥其强大的管理能力,正确地管理事务并传播其上下文,从而确保数据的一致性。
2025-04-15 13:40:48
41
转载 阿里内部爆款 Spring+Redis+MySQL 实战笔记,太详细了!
不仅包含大量的高频面试题,今年最新面试真题也都整理在里面了!几乎所有的后端技术面试都会涉及到Spring、Redis 相关的知识,这份资料。而且,和市面上的其他资料不同,这份资料不是扫描版的,里面的文字都可以直接复制。即便最近不打算跳槽,也可以通过这些知识点查漏补缺、提升自己,进阶。,不管是工作还是面试中都占有很大的比例,本资料不适合学生群体,更适合职场人群)本资料不适合学生群体,更适合职场人群)有其他Java相关的问题也欢迎来问!有其他Java相关的问题也欢迎来问!动向,精准拿捏今年的后端面试!
2025-04-14 10:20:47
41
转载 不宕机、无风险!千亿级数据线上平滑扩容实战!
但是在极限情况下, 即便通过上面的数据校验处理, 也有可能出现99.99%数据一致, 不能保障完全一致,这个时候可以在旧库做一个readonly只读功能, 或者将流量屏蔽降级,等待日志增量同步工具完全追平后, 再进行新库的切换。修复切换异常数据:在切换过程中, 如果出现,Canal未同步,但已切换至新库的请求(比如下单,修改了资金, 但还未同步 ), 可以通过定制程序, 读取检测异常日志,做自动修复或人工处理。线上数据库,为了保障其高可用,一般每台主库会配置一台从库,主库负责读写,从库负责读取。
2025-04-11 13:40:29
85
转载 5大步骤+10个案例,SQL优化万能公式!
in查询在进行cost代价计算时(代价 = 元组数 * IO平均值),是通过将in包含的数值,一条条去查询获取元组数的,因此这个计算过程会比较的慢,所以MySQL设置了个临界值(eq_range_index_dive_limit),5.6之后超过这个临界值后该列的cost就不参与计算了。在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。在索引上,避免使用NOT、!
2025-04-10 13:41:01
59
转载 Spring Boot+原生注解@JsonView 轻松过滤字段,真的优雅!
实际的项目中,不可能只返回一个字段,如果返回多个字段,那就在C层再定一个接口,继承所以要返回字段的接口即可。注解指定返回的视图,就可以灵活控制返回的字段内容,实现了根据不同场景动态选择序列化字段的目的,大大提高了代码的简洁性和可维护性。的关系 因此,如果查询学生,班级会包含在学生的字段中,教师会包含在班级的字段中。对于已经定义JsowView的对象,C层只返回注解中的JsonView接口里面包含的字段,其他字段一概不返回。的所有字段,如果出现关联对象,只返回关联对象本身,而不返回其中的字段。
2025-04-09 13:40:51
111
原创 Spring Integration 轻松实现服务间消息传递,真香!
它能够将外部系统的消息“翻译”成 Spring Integration 能够理解的消息格式,也可以将 Spring Integration 的消息传递给外部系统。:在 Spring Integration 的体系中,消息是信息传递的关键载体。适配器用于将外部系统的消息与 Spring Integration 进行集成,使得外部系统的消息能够在 Spring Integration 中流通。路由器的灵活性使得我们可以根据消息的内容、属性或条件进行动态的路由,从而实现系统中不同组件的消息处理逻辑的分离。
2025-04-08 13:40:47
1072
转载 工作几年了,原来只用了数据校验的皮毛~
专栏文章已经写到第十四章了,无论写的好与不好,作者都在尽力写的详细,写的与其它的文章不同,每一章都不是浅尝辄止。举个栗子:文章可以有一个或者多个分类,作者在提交文章的时候必须指定文章分类,而分类是单独一个实体,有。这种方式的弊端很明显,每个接口方法参数都要声明,同时每个方法都要处理校验信息,显然不现实,舍弃。如果约束注解需要对其他数据类型进行校验,则可以的自定义对应数据类型的校验器,然后在约束注解头上的。接收校验的结果的方式很多,不过实际开发中最好选择一个优雅的方式,下面介绍常见的两种方式。
2025-04-07 10:20:56
29
转载 面试通过率超高的后端八股文,太顶了!
Spring、Spring Boot/Cloud、Dubbo、JVM、集合、多线程、JPA、MyBatis、MySQL、大数据、Docker、Servlet、JavaWeb、Redis、算法等,几乎覆盖了所有 Java 相关的面试真题!现在正值跳槽的高峰期,有几个同学这两天跟我聊天的时候说,现在面试已经不局限于基础的八股文了,基于项目中涉及到的框架、算法等问题越来越多。现在的情况已经和前几年完全不一样了,以前随便写写简历,背诵几周八股文就可以去参加面试,现在估计一面都过不了。九大模块+图文结合+逻辑超强。
2025-04-07 10:20:56
49
转载 这些企业级实战总结,真的太全了!
最近陈某新出了一本小本册子,其中总结了企业中后端的各种核心问题解决方案,包括JVM、数据库、性能调优等企业级落地的解决方案!,满200名恢复原价,目前已经全部更新完,有兴趣的同学可以扫描下方二维码在线订阅!大家好,我是不才陈某~扫码进入有试读的章节!
2025-04-06 13:40:33
62
转载 多人同时导出 Excel 干崩服务器?产品让我实现一个排队导出功能!
分别是用户、导出队列、导出执行方法 ExportQueue:维护一条定长队列,可以获取队列里前后排队的用户,提供查询,队列如果已经满了,其余的人需要进行等待 User信息:排队执行导出方法对应用户;Export类:定义导出方法,异步执行,用户可以通过导出页面查看、下载,导出的文件;业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;测试controller。
2025-04-03 13:40:48
41
原创 拒绝if-else!小而美的规则引擎 Easy Rules 真不错!
这样,业务代码专注于业务逻辑的处理,而规则代码则负责规则的定义和管理。:规则具有自描述性,每个规则都可以看作是一个独立的文档,便于理解和维护。开发者可以通过规则的名称、描述和条件等信息,快速了解规则的用途和逻辑。默认情况下,操作的顺序为0。:发版频率极高,可能一个月需要进行6次规则修改和上线操作,每次上线都伴随着一定的风险,如代码冲突、功能异常等。:每当市场部调整规则时,开发者需要在大量的代码中艰难地寻找逻辑修改点,这不仅效率低下,还容易出错。在电商业务的实际运营中,促销规则的频繁变更是一个常见的问题。
2025-04-02 13:40:32
1193
转载 企业级支付状态机设计与落地方案!
团队成员可以根据状态机的规则,快速了解系统的运行逻辑,提高开发和维护的效率。在实际的支付业务中,支付状态的定义并非一成不变,而是需要根据具体的业务需求进行灵活调整。对于已经支付成功的订单,当用户或系统发起退款请求后,订单进入退款中状态,此时需要等待第三方的退款结果。当收到第三方支付成功的回调信息,或者主动查询到支付成功的结果时,订单正式完成支付,进入支付成功状态。综上所述,对于中大型支付系统而言,状态机几乎是不可或缺的设计工具,它能够帮助系统更好地应对复杂的业务场景,提高系统的稳定性和可维护性。
2025-04-01 13:40:36
70
转载 Nacos + 适配器 动态实现 OSS 无感切换!
注意:这里直接使用new的方式创建实现类(实现类也不需要使用@Service注解),而不是先把所有的实现类通过注解定义出来,再直接返回对象,这样如果新增一个OSS的话,不光要加else,还需再把实现类通过直接定义出来。在一个微服务项目里,我们的 OSS 云存储服务常常需要配置诸如阿里云、腾讯云、minio 等多个云存储厂商的业务代码,而且后续无法确保是否会增添新的云存储厂商。此时,倘若我们要修改具体使用的云存储厂商,就会致使 controller 层和 service 层发生变动,这并不符合低耦合的理念。
2025-03-28 13:47:21
56
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人