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

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

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

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

原创 实战!Spring Boot Security+JWT前后端分离架构登录认证!
点击上方☝码猿技术专栏轻松关注,设为星标!及时获取有趣有料的技术大家好,我是不才陈某~认证、授权是实战项目中必不可少的部分,而Spring Security则将作为首选安全组件,因此陈...
2021-11-29 08:10:00
2591
1
转载 多人同时导出 Excel 干崩服务器?产品让我实现一个排队导出功能!
分别是用户、导出队列、导出执行方法 ExportQueue:维护一条定长队列,可以获取队列里前后排队的用户,提供查询,队列如果已经满了,其余的人需要进行等待 User信息:排队执行导出方法对应用户;Export类:定义导出方法,异步执行,用户可以通过导出页面查看、下载,导出的文件;业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;测试controller。
2025-04-03 13:40:48
4
原创 拒绝if-else!小而美的规则引擎 Easy Rules 真不错!
这样,业务代码专注于业务逻辑的处理,而规则代码则负责规则的定义和管理。:规则具有自描述性,每个规则都可以看作是一个独立的文档,便于理解和维护。开发者可以通过规则的名称、描述和条件等信息,快速了解规则的用途和逻辑。默认情况下,操作的顺序为0。:发版频率极高,可能一个月需要进行6次规则修改和上线操作,每次上线都伴随着一定的风险,如代码冲突、功能异常等。:每当市场部调整规则时,开发者需要在大量的代码中艰难地寻找逻辑修改点,这不仅效率低下,还容易出错。在电商业务的实际运营中,促销规则的频繁变更是一个常见的问题。
2025-04-02 13:40:32
708
转载 企业级支付状态机设计与落地方案!
团队成员可以根据状态机的规则,快速了解系统的运行逻辑,提高开发和维护的效率。在实际的支付业务中,支付状态的定义并非一成不变,而是需要根据具体的业务需求进行灵活调整。对于已经支付成功的订单,当用户或系统发起退款请求后,订单进入退款中状态,此时需要等待第三方的退款结果。当收到第三方支付成功的回调信息,或者主动查询到支付成功的结果时,订单正式完成支付,进入支付成功状态。综上所述,对于中大型支付系统而言,状态机几乎是不可或缺的设计工具,它能够帮助系统更好地应对复杂的业务场景,提高系统的稳定性和可维护性。
2025-04-01 13:40:36
13
转载 Nacos + 适配器 动态实现 OSS 无感切换!
注意:这里直接使用new的方式创建实现类(实现类也不需要使用@Service注解),而不是先把所有的实现类通过注解定义出来,再直接返回对象,这样如果新增一个OSS的话,不光要加else,还需再把实现类通过直接定义出来。在一个微服务项目里,我们的 OSS 云存储服务常常需要配置诸如阿里云、腾讯云、minio 等多个云存储厂商的业务代码,而且后续无法确保是否会增添新的云存储厂商。此时,倘若我们要修改具体使用的云存储厂商,就会致使 controller 层和 service 层发生变动,这并不符合低耦合的理念。
2025-03-28 13:47:21
29
转载 牛逼!DeepSeek-V3-0324 发布:更智能的编码体验,加速码农编码效率!
从测评结果可以清晰地看到,DeepSeek-V3-0324 在使用最少算力的情况下,达到了最优的效果,在全球范围内,其效果与成本的完美组合处于绝对领先地位。在编码领域,其效果却十分惊艳。大幅减少了商用限制,开发者可以更加自由地将其集成到商业产品中,有效降低了企业的使用门槛,为开源生态的发展注入了新的活力。:提升了 API 调用的稳定性和响应速度,能够更好地适配更多的开发需求,为开发者提供了更便捷的开发体验。:有效减少了幻觉(错误信息)的出现,提高了事实准确性,回答更加可靠,为用户提供了更优质的服务。
2025-03-27 13:39:42
30
转载 聊聊 Java SPI 机制
当其他的程序需要这个服务的时候,就可以通过查找这个jar包(一般都是以jar包做依赖)的META-INF/services/中的配置文件,配置文件中有接口的具体实现类名,可以根据这个类名进行加载实例化,就可以使用该服务了。目录,该目录下会有一个名字为java.sql.Driver的文件,文件内容是com.mysql.cj.jdbc.Driver,这里面的内容就是针对Java中定义的接口的实现。,但是在其架构中并未对其做出具体的实现,而是交给不同的厂商去实现,比如JTA强一致性事务的。
2025-03-26 10:20:28
16
转载 网易二面:阿里为何建议MVC+Manager层混合架构?
说明:对于@Transactional 注解,当 spring 遇到该注解时,会自动从数据库连接池中获取 connection,并开启事务然后绑定到 ThreadLocal 上,如果业务并没有进入到最终的 操作数据库环节,那么就没有必要获取连接并开启事务,应该直接将 connection 返回给数据库连接池,供其他使用。通过以上的分析和示例,我们可以看到,引入 Manager 层可以有效地解决传统 MVC 三层架构中存在的问题,使系统的架构更加清晰、合理,提高系统的可维护性和性能。Manager 层添加。
2025-03-25 13:40:58
39
转载 干掉if else!强烈推荐这5款Java表达式引擎
在使用 SpEL 时,安全性是我们必须要考虑的因素。为了避免注入攻击,Spring 提供了 ExpressionParser 的配置选项,我们可以通过它来限制表达式的执行能力,比如禁用方法调用或者属性访问等。例如,我们可以在表达式中定义一个局部变量,并在后续的代码中使用它。而 Hutool 提供的表达式门面模式,为我们使用这些表达式引擎提供了统一的接口,大大简化了开发过程。:Aviator 提供了沙箱机制,我们可以通过它来限制表达式的执行权限,比如禁止访问某些方法或字段,从而大大提高应用的安全性。
2025-03-24 13:40:00
87
转载 Spring Boot 一个接口实现任意表的 Excel 导入导出
Java的web开发需要excel的导入导出工具,所以需要一定的工具类实现,如果是使用easypoi、Hutool导入导出excel,会非常的损耗内存,因此可以尝试使用easyexcel解决大数据量的数据的导入导出,且可以通过Java8的函数式编程解决该问题。这种方式可以通过把表中的字段顺序存储起来,通过配置数据和字段的位置实现数据的新增,那么如果出现了导出数据模板/手写excel的时候顺序和导入的时候顺序不一样怎么办?那么这些问题都解决了,如果出现大数据量的情况,如果要极大的使用到cpu,该怎么做呢?
2025-03-24 08:40:18
35
转载 抖音一面:二维码扫码登录原理
但是在日常使用过程中,我们应该会注意到,只有在你的应用下载下来后,第一次登录的时候,才需要进行一个账号密码的登录, 那之后呢 即使这个应用进程被杀掉,或者手机重启,都是不需要再次输入账号密码的,它可以自动登录。服务端就可以通过 token 找到与它绑定的账号与设备信息,然后把绑定的设备信息与客户端每次传来的设备信息进行比较, 如果相同,那么校验通过,返回 AP 接口响应数据, 如果不同,那就是校验不通过拒绝访问。不可能手机端登录的是账号 A,而扫码登录以后,PC 端登录的是账号 B。
2025-03-23 11:30:08
26
转载 IDEA 的 AI 编程插件推荐清单,开发效率起飞!
根据项目需求和个人偏好选择工具,建议从 免费工具(如 CodeGeeX) 开始体验,再逐步升级到付费插件以解锁高阶功能!AWS 深度集成,擅长生成云服务(如 Lambda、S3)代码。国际插件(如 Copilot)需稳定访问外网,国内插件可直连。插件市场直接安装,免费版够用,Pro 版支持全代码库学习。基于 ChatGPT,支持生成测试用例、文档和代码解释。OpenAI 驱动,代码生成精准度高,支持多语言。阿里云出品,中文注释生成代码,无缝对接云服务。清华团队开发,完全免费,支持代码翻译/解释。
2025-03-22 13:53:50
473
转载 慎用!不要在事务中嵌套发送 MQ 消息和 RPC 调用!
回到开头提到的问题,在业务低谷期,MQ 消息会出现反查无法查询到数据的情况,这是因为在低谷期 MQ 消息能够被及时消费,其延迟几乎和 RPC 请求一样,这就使得消费者会在事务提交前执行反查操作,从而出现和 RPC 请求相同的问题。而在高峰期,由于 MQ 消费不及时,反查操作被“延后”了,在事务提交后才开始消费,所以可以查询到数据。实际上还存在一个问题,即事务提交成功,但 MQ 消息发送失败,无法保证本地事务和消息发送的原子性,也就是无法实现要么都成功,要么都失败的目标。总体而言,这种方法的弊端远大于益处。
2025-03-20 13:40:28
25
转载 异步利器 CompletionService 真实用!
范式没有说明 Executor 的使用,使用 ExecutorCompletionService,需要自己创建线程池,看上去虽然有些麻烦,但好处是你可以让多个 ExecutorCompletionService 的线程池隔离,这种隔离性能避免几个特别耗时的任务拖垮整个应用的风险 (这也是我们反复说过多次的,假设我们有 4 个任务(A, B, C, D)用来执行复杂的计算,每个任务的执行时间随着输入参数的不同而不同,如果将任务提交到 ExecutorService, 相信你已经可以“信手拈来”
2025-03-19 13:40:21
24
转载 写代码有这20个好习惯,可以减少80%非业务的bug!
在编写代码时,尽量遵循测试驱动开发(TDD)的原则,先编写测试用例,再实现代码逻辑,确保代码满足预期的功能。今天,我精心为大家整理了写代码的16个好习惯,这些习惯个个经典实用,倘若你能将它们融入日常的编程工作中,相信大部分非业务相关的Bug都能被我们轻松规避。同样的道理,在Linux服务器上,操作文件、数据库连接等IO资源时,如果使用完后没有及时关闭,这些资源就会一直被占用,造成资源浪费。所以,当你的需求是在原来的接口上进行修改时,特别是这个接口是对外提供服务的,一定要充分考虑接口的兼容性。
2025-03-18 13:40:24
32
转载 微服务 聚合 API 文档
单个服务聚合其实很简单,就是普通的Spring Boot 整合 Swagger,但是微服务模块众多,不能每个微服都整合一番,因此可以自定义一个。该文档的所有配置,包括请求参数、授权令牌等信息都是缓存的,也就是说配置一次,下次再打开的时候也是默认存在的。本文只介绍如何聚合Swagger,关于网关、注册中心等内容不再介绍,有不了解的看陈某前面文章。3本书了,7万+字,10篇文章,《Spring Cloud 进阶》基础版 PDF。API文档配置无非就是配置文档的基本信息,比如文档标题、作者、联系方式.....
2025-03-17 10:20:43
30
转载 日常工作,MQ的8种常用使用场景!
然而,短信或邮件的发送过程往往比较耗时,如果采用同步方式处理,可能会导致注册接口响应缓慢,甚至拖垮整个注册流程。然而,如果订单创建成功,但消息没有成功发送出去,下游系统就无法感知到订单的创建,从而导致数据不一致。在金融业务中,经常需要进行消息对账或问题排查,通过RocketMQ的消息查询功能,可以快速定位和处理相关问题,确保业务的准确性和合规性。以上就是MQ的8种常用使用场景,希望通过本文的介绍,能让大家对MQ有更深入的了解,在实际开发中更好地运用MQ来解决各种业务问题。
2025-03-14 13:40:14
39
转载 Spring Boot + CRaC 启动速度提升了10倍!
在 Java 应用程序的开发与运行过程中,启动和预热时间过长一直是个令人头疼的难题。目前,业界也提出了不少解决思路,之前我和大家探讨过的 AOT 技术,能在一定程度上缓解启动慢的问题。今天,咱们要聊的 CRaC 技术,为这个问题提供了另一种全新的解决方案。一、CRaC 是什么CRaC,即 Coordinated Restore at Checkpoint(检查点协调恢复),是一个 OpenJDK ...
2025-03-13 13:40:24
24
转载 干掉if..else!Spring Boot+aviator+aop 太丝滑了!
大家好,我是不才陈某~aviator本来是一个轻量级、高性能的基于JVM的表达式引擎。不过从5.0.0版本开始,aviator升级成为了aviatorScript,成为一个高性能、轻量级寄宿于 JVM (包括 Android 平台)之上的脚本语言。根据官网的介绍,aviator支持的主要特性:支持数字、字符串、正则表达式、布尔值、正则表达式等基本类型,完整支持所有 Java 运算符及优先级等。函数...
2025-03-12 13:41:02
60
转载 Spring-Smart-DI 动态切换实现类,很不错!
大家好,我是不才陈某~在系统开发的实际场景中,我们常常会碰到这样一类需求:同一个功能需要对接多个服务提供商。这么做主要基于两个重要原因。其一,为了规避某个服务商的服务出现不可用的风险,以便在出现问题时能够迅速切换到其他服务商,确保系统的稳定性和业务的连续性;其二,不同服务商的收费标准存在差异,从成本控制的角度出发,需要根据实际情况进行灵活切换。传统的快速切换逻辑实现方法是,先为每个服务商编写对应的...
2025-03-10 13:46:41
69
转载 企业级数据脱敏方案!
大家好,我是不才陈某~最近几年经常发生用户数据泄漏的事件,给企业带来危机。随着用户对个人隐私数据的重视和法律法规的完善,数据安全显得愈发重要。一方面可以加强权限管理,减少能够接触数据的人员以及导出数据加强审批。另一方面,还需要从技术上对用户隐私数据进行脱敏处理,提高数据的安全性。Java进阶网站:https://java-family.cn数据脱敏方法有很多种,大致可以按照以下进行分类:隐藏法:...
2025-03-08 13:40:41
51
转载 SpringBoot + ResponseBodyEmitter 实时异步流式推送,优雅!
大家好,我是不才陈某~ChatGPT 的火爆,让流式输出技术迅速走进大众视野。在那段时间里,许多热爱钻研技术的小伙伴纷纷开始学习和实践 SSE 异步处理。我当时也写过相关文章,今天,咱们换一种更为简便的方式来实现流式输出,那就是ResponseBodyEmitter。其实,ResponseBodyEmitter并非新技术,早在 Spring Framework 4.2 版本就已被引入。直到最近...
2025-03-07 13:40:29
81
转载 太方便了!SpringBoot 只需一个注解,就能搞定任意对象下载!
介绍下载功能应该是比较常见的功能了,虽然一个项目里面可能出现的不多,但是基本上每个项目都会有,而且有些下载功能其实还是比较繁杂的,倒不是难,而是麻烦。因此,为了简化这一过程,有一个工具库,使得下载功能的实现变得更加简单快捷。❝传送门:https://github.com/Linyuzai/concept/wiki/Concept-Download❞如果我说现在只需要一个注解就能帮你下载任意的对象,...
2025-03-05 09:05:45
26
转载 Spring Cloud Gateway 数字签名、URL动态加密这样设计真优雅!
大家好,我是不才陈某~在网络传递数据的时候,为了防止数据被篡改,我们会选择对数据进行加密,数据加密分为对称加密和非对称加密。其中RSA和AES,TLS等加密算法是比较常用的。对称加密对称加密是指加密和解密使用相同的密钥的加密方法。其基本流程包括以下步骤密钥生成:双方协商生成一个共享密钥或由一方生成密钥并安全地传输给另一方。加密:使用共享密钥对原始数据进行加密,得到加密后的数据。传输:将加密后的数据...
2025-03-04 08:45:22
32
原创 杭州福利待遇 TOP 25 的互联网公司,值得去!
作为“电商之都”和“互联网新城”,杭州不仅汇聚了阿里、网易等巨头,更孕育了无数高潜力的科技企业。高薪、六险一金、弹性办公、股权激励……这些神仙福利究竟花落谁家?本文为你揭秘杭州福利待遇TOP25的互联网公司,助你找到“梦中情司”!????余杭区:互联网巨头的“福利天花板”1.字节跳动福利亮点:年薪16薪起步+租房补贴+免费三餐下午茶;弹性工作制,周末双休;年度旅游、健身房、节日礼盒拿到手软。业务方向:抖...
2025-03-03 13:49:06
329
转载 干掉复杂代码! Spring Boot + CQRS 黄金组合,太优雅了!
大家好,我是不才陈某~微服务的兴起以及现代软件架构对可扩展性、灵活性和可维护性的需求导致开发人员接受各种设计模式。近年来备受关注的一种模式是命令查询职责分离 (CQRS) 模式。CQRS 特别适合命令(改变状态)和查询(读取状态)之间有明显区别的系统。在本文中,我们将深入研究 CQRS 并了解如何使用 Spring 微服务来实现它。Java技术指南:https://java-family.cn了解...
2025-03-03 08:45:53
30
转载 公司用了 5 年的单点登录方案,稳得一批!
大家好,我是不才陈某~概念单点登录(Single Sign-On,SSO)是一种身份验证服务,允许用户使用单个标识来登录多个应用程序或系统。如下图所示,用户只需要用户名/密码登陆一次就可以访问系统A、系统B和系统C。在传统的登录方式中,用户必须为每个应用程序或系统提供不同的凭据和密码。如下图所示,用户访问系统A、系统B和系统C都必须用用户名/密码登陆。这种方式既不方便也容易被攻击者利用,而 SSO...
2025-02-27 13:40:22
42
原创 互联网大厂稳定性 Top10,你的公司上榜了吗?
近年来,互联网行业经历了从“野蛮生长”到“降本增效”的转变。面对市场波动和政策调整,大厂员工的“稳定性”成了求职者最关心的指标之一。互联网大厂稳定性Top 10排行榜,你的公司上榜了吗?1.拼多多:裁员?不存在的!????拼多多堪称“最反内卷”的大厂,几乎从未传出大规模裁员消息。其核心电商业务持续增长,海外业务Temu势头强劲,员工流动性极低。内部人士透露:“公司更倾向通过优化流程降本,而非裁员。”稳定...
2025-02-26 13:40:42
336
转载 利用 Function 打造高效断言神器,真优雅!
前言在 Java 开发的征途中,我们时常与重复代码不期而遇。这些重复代码不仅让项目显得笨重,更增加了维护成本。幸运的是,Java 8 带来了函数式编程的春风,以Function接口为代表的一系列新特性,为我们提供了破除这一难题的利剑。本文将以一个实际应用场景为例,即使用 Java 8 的函数式编程特性来重构数据有效性断言逻辑,展示如何通过SFunction(基于 Java 8 的 Lambd...
2025-02-24 13:40:31
49
原创 裁猿增效!阿里巴巴:裁减 24940 人
2024年,阿里巴巴员工总数从2022年初的25.9万人锐减至19.4万人,累计裁减6.5万人。仅2024年,就有24940人离开,相当于每天近60人“毕业”。然而,同年财报却显示:净利润同比暴涨333%(464.34亿元),股价创三年新高。这组数据看似矛盾——“裁员”与“暴利”为何并存?答案藏在两个关键词里:“裁猿增效”与“AI革命”。断臂求生:非核心业务“卖卖卖”过去三年,阿里巴巴经历了一场“...
2025-02-22 13:40:47
331
转载 Deepseek 副业交流+学习群!
新建了一个Deepseek交流群,方便大家交流AI行业的心得,扫码加群也可以添加陈某好友,拉你进群,微信:special_coder;备注手册,赠送全套DeepSeek入门和变现手册!...
2025-02-21 09:30:21
90
1
转载 这个国产技术正在定义下一代爆款App的形态
近期,发现一个有意思的现象,小程序正被外国公司玩得风生水起!拥有9亿用户的通讯巨头Telegram,悄然推出了小程序开发功能,并且通过引入小程序技术搞起了生态,在Web3领域红得发紫!目前,Telegram上的小程序可以完全替代大部分网站,支持无缝授权、通过20个支付提供商(包括Google Pay和Apple Pay)进行集成支付和定制化功能,比如:新闻、外卖、以及最近爆火的Catizen小游戏...
2025-02-20 08:31:31
18
原创 中兴员工爆料:华为的可以跳槽中兴,中兴的不能去华为,包括外包!
在职场摸爬滚打多年的人,大多会逐渐明白一个扎心的事实——你以为的“职场光环”,往往只是平台赋予的附加值。一份光鲜的履历背后,可能是大厂的资源、团队协作的成果,甚至是行业默认的“出身标签”。而当你想跳出这个平台时,才会发现:有些门,从你踏入前东家的那一刻起,就已经关上了。最近,一位中兴员工的爆料撕开了通信行业的隐秘一角:“华为的人可以轻松跳槽到中兴,但中兴的员工(包括外包)却几乎无法进入华为。”看似...
2025-02-19 13:40:53
514
转载 项目终于用上了xxl-job,好起来了!
大家好,我是不才陈某~本篇文章主要记录项目中遇到的 xxl-job 的实战,希望能通过这篇文章告诉读者们什么是 xxl-job 以及怎么使用 xxl-job 并分享一个实战案例。那么下面先说明什么是 xxl-job 以及为什么要使用它。xxl-job 是什么?XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。设计思想 是将调度行为抽象形成 调度中心 平台...
2025-02-18 13:41:00
15
转载 节后充电!一套资料吃透 Spring Boot+MySQL+Redis……
上周,我从字节后端面试官那里要了几套Java内部学习资料。回家一看,这份资料确实有点东西。不仅包含大量的高频面试题,今年最新面试真题也都整理在里面了!还系统梳理了后端工程师必备的核心技能点:Spring、Spring Boot、Dubbo、JVM、JPA、MyBatis、如何应对HR面、如何应对项目面......即便最近不打算跳槽,也可以通过这些知识点查漏补缺、提升自己,进阶高级后端工程师!????????扫...
2025-02-17 10:21:08
15
转载 刚刚,微信接入DeepSeek!第一时间体验了!
2月15日深夜,记者发现微信正在灰测接入DeepSeek R1模型。部分用户已经可以内测相关AI搜索功能。入口在微信首页上方的搜索框,点开会出现一个“AI搜索”功能,目前灰色测试中,只有部分人可以看到。点击之后可选择“深度思考”,即DeepSeek R1模型。通过它搜索时,会展示思考推理的流程。若未显示该入口,说明暂未覆盖到您的账号,请耐心等待后续开放。另外,微信的功能介绍页面显示,本产品涉及对D...
2025-02-16 13:40:43
34
转载 Spring 宣布接入 DeepSeek!!
DeepSeek 是深度求索公司发布的大模型,是国产之光。大家应该学会如何使用 DeepSeek 大模型,下面我们将看下如何开发基于 DeepSeek 大模型的智能应用。要学习如何使用DeepSeek,看:清华出的DeepSeek使用手册DeepSeek 大模型DeepSeek 推出两款模型;DeepSeek V 系列,对于V系列主要 对话,模型名称:deepseek-chatDeepSeek R...
2025-02-14 13:40:21
36
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人