- 博客(47)
- 资源 (11)
- 收藏
- 关注
原创 spring - seata 1 分布式事务
能不用分布式事务就不用!!!从传统的调用上来看,发起方事务失败,是无法通知接收方的;有人可能会说:接收方挂起,等待发起方通知?那么谁来通知发起方:接收方是否执行成,这不形成死锁了?引入了事务协调器,来服务通知大家,是否可以进行最后的 commit。
2025-12-01 18:26:53
258
原创 spring - seata 1 概念
这样一来,业务资源被预留(Try 执行了),但整个全局事务已经回滚,再也没有后续的 Confirm 或 Cancel 来清理这个资源,导致资源一直被占用,即“悬挂”。: 当一个 Try 方法因网络超时、服务宕机等原因没有被执行,但全局事务已经开启,事务管理器会直接发起回滚,调用 Cancel 方法。: 在早期版本中,开发者需要在自己的业务代码中手动实现防悬挂和空回滚的逻辑,通过查询事务控制表等方式来判断 Try 是否已执行。记录),则会抛出异常,阻止 Try 方法的执行,从而避免了悬挂。
2025-11-27 15:57:24
393
原创 spring - 微服务认证 5 刷新token
/ 令牌响应DTO@Data// 秒// 刷新请求DTO@Data@NotBlank// 数据库刷新令牌实体@Entity@Data@Id// 存储哈希值// IP + User-Agent 的哈希@Column@Service@Slf4j@Value("${app.jwt.access-token-expiration:900}") // 15分钟。
2025-11-26 13:56:23
156
原创 spring - 微服务认证 4 题外
5,使用 HttpOnly 保存 token,httpOnly 保证 javascript 不可读,有效防止 xss 攻击;1,前后都使用 BCrypt 加密算法,此算法保证有相同的 hash散列,但有不同的 hash值,无法通过值比较对应密码;3,如果本次登录,和日常登录地 ip 有冲突,可以短信提醒,附带冻结账号链接;2,和本次登录地 ip 绑定,如果异地 ip 直接拒绝请求;4,使用短期 token,附带整套 刷新token 机制;1,使用 https;
2025-11-26 13:50:55
144
原创 spring - 微服务授权 2 实战
上述只是模拟一个最简单的三方授权登录过程,下一节会探究其原理。4,点击 Submit Consent,进入。3,点击 Sign in,进入。ps:此步骤会进行多个接口调用。授权服务(微信授权服务)搭建。客户端(某奇艺)后端服务搭建。PS:启动类什么也没开启。PS:启动类什么也没开启。2,直接点击登录,进入。
2025-11-09 21:56:05
111
原创 spring - 微服务授权 1 概念
大致过程,后端服务临时储存(或数据储存) state 标识,然后对应授权服务返回的 code,在对应后续返回的 token,在对应返回的 用户信息;之后前端轮询的请求携带 state,后端能通过 state 找到刚擦保持的用户信息,之后怎么操作是你自己的业务。用户代理:指的是访问工具,比如浏览器,但真正起作用的是网站页面(如:某奇艺的登陆页面);1,官网、视频和博客,是相辅相成的,一起看,视频和博客是官网的注释,官网是标准思路;客户端:就是网站后台(如:某奇艺的后台),和用户代理是配套的(前端——后台);
2025-11-05 20:05:05
476
原创 Resilience4j - 实际使用探究 2
我要降级所有调用这个服务的接口,因为大批量的接口出现失败,可以认为被调用方服务已经不可用了。1,当同路径的大量接口出现失败,怎么进行熔断?
2025-11-05 11:14:34
74
原创 feign
此时采用集群模式,必须引用负载均衡组件 spring-cloud-starter-loadbalancer。此时采用直连模式,name作用为对 FeignClient bean 的命名,name是必须配置的。@FeignClient注解,三个重要参数 name(value),url,path。此情况可用于测试、调试 指定的一台服务。
2025-11-05 11:06:33
184
原创 nacos — 与 spring 集成 2
注意 spring-cloud-starter-gateway 基于 spring-boot-starter-webflux 开发的,需要重新定义版本。目前 springboot 3.2.x 和 3.3.x 均存在漏洞,但阿里的东西没办法,强依赖版本。不能通过maven一个一个去看spingboot的版本,可以通过mvn查看。本文选择 springboot 3.2.12 springcloud 4.0.5。springcloud选择 2023发布最新的就行。gateway pom配置。
2025-10-15 17:27:28
270
1
原创 springboot websocket 原理
ServerEndpoint 会被websocket容器管理,不会被spring管理。端点方式,不能正常注入bean,通过 SpringContext 去查找bean。实例的连接请求,由websocket容器本身管理,包括session。每个实例连接由spring容器管理。
2025-10-01 08:52:15
213
1
原创 go webrtc - 2 webrtc重要概念
webrtc是一套音视频传输技术生态,不是一个协议或一个什么东西。本文基于 SFU 形式阐述!sfu 信令 客户端。
2025-09-09 20:35:14
207
原创 微信扫码登陆 — 4 接收消息
回复实体定义,同微信发送消息实体!根据自己业务回复相应类型的消息!,为官方示例解密代码,可以参考!为自定义回调接口,必须可以。应用实例 service。需要用到上述代码,其中。
2025-08-22 16:30:38
873
原创 微信扫码登陆 — 1 相关概念
微信公众平台需要认证微信服务号,才能进行扫码登录的开发,只需申请一个公众号。微信开放平台需要开企业认证才能注册;微信公众平台 ·测试账号申请。点上上方链接,扫码进来之后。点击蓝色链接 ,查看。
2025-08-14 23:44:51
512
原创 spring bean生命周期 学习记录
1,第三级缓存存放 createBean的lambda表达式(BeanFactory<?> 采用函数式接口,使用时才会创建),当获取循环引用获取早期对象时(只实例化的bean),这个早期对象不知道有没有被AOP修饰,但AOP代理,要拿到完整的对象,才能正确代理,但是 代理在 beanAfterPostProcessor 发生在 popularBean 属性填充之前。2,循环依赖的根本原因是,实例化和属性填充可以分开执行。在 SimpleAutowareConfig?
2025-06-30 21:58:00
114
原创 java 对象创建 学习记录
引用类型 在javac编译之后,变量的名,如 String str,str这三个字母是不存在的,由引用地址进行替换,但反射会保留变量名,保留在class元数据中。jvm中采用间接引用方式(引用的引用),因为如果采用直接引用,对象在新生代由于GC会不用的移动,但class文件字节码已经编译好,导致找不到数据。基本类型 4字节对其,如:boolean类型占用1字节,但会变成4字节对齐。大致包括:线程id,锁信息,引用标记信息,年龄等。每个GC收集器的对象头结构都不一样,类指针 4字节(不压缩8字节)
2025-06-30 21:46:03
186
原创 JVM GC学习记录
解决不了垃圾对象循环引用问题。从根对象(线程、main函数、静态变量、常量)扫描。黑:其下所有子树,引用均被标记完成,是存活的最终状态。灰:其下所有子树,但引用的对象尚未完全检查,是存活的过渡状态。白:对象未被标记,默认初始状态,标记结束后仍为白色的对象将被回收。标记时会STW扫描根节点,然后标记线程与业务线程并行存在;会产生情况2,业务线程让灰色对白色的引用消失,白色为浮动对象,但是,标记线程下一次CPU切换重新扫描就可解决。
2025-06-30 16:05:51
358
原创 java快速排序简化
快排思路,选择第一元素,数组剩下和它相比,小于的放在左边,大于放在右边,进行递归。我们头疼就是元素怎么交换,换个思路:小时候都玩过这个游戏,如果方块是满的,那肯定无法移动,需要拿出一块。现在有这么一个数组,第一个元素是4,剩下和4进行比较。把 4 拿出来之后,数组第一个位置,变为空可以放其他值;4 和第二个元素 1 比较,1
2023-06-06 15:10:56
245
原创 java深入多线程——基本概念
3. synchronize是内置锁(由jvm和操作系统调整),ReentrantLock是显示锁(由开发者调整)。5. 多核CPU指的是,一颗CPU有两个核心;1核两线程指的是,1个运算单元,两个存储单元。4. 常见的关键字,内存屏障、缓存行、原子性、排他锁、共享锁、this溢出、重排序等。人对一个事物得认知是最难的,这是一个哲学问题,就好像你小时候不理解你的名字。1. 长说的线程锁 具体锁的。操作系统的mutex。
2023-05-16 13:04:06
201
原创 java深入多线程——前言
本系列文章,给大家指出大致体系,好有一个轮廓,大家可以基于某个点继续深入,不会毫无头绪,所以还得要靠自己的努力。如果你真的想学懂多线程,要了解到 java -> jvm -> 汇编 -> 操作系统,所以一定要有耐心。这边博客对于我来说,也是一个挑战,因为我也没有具体数据,证明我写的就是对的,因此欢迎大家留言指出。欢迎其他大佬对本系列进行补充,对文章排版有建议、觉得不方便阅读请留言。很难理解整个体系,但我想告诉大家的事,它真的很难。最近在学习多线程,大部分网上资料零碎,不系统。
2023-05-16 12:42:47
164
原创 spring源码:准备工作
工具1. idea开发工具2. 有道词典3. spring官网:https://spring.io/,保存下来。说明源码的注释、官方文档,通篇英文,看起来头都大,想学习知识还是要克服的。虽然现在有不少的学习视频,资料可以供大家参考,但平时工作是不会的时候再去查视频,也不一定有相关的内容,有时记得有但不知道在哪,等等原因,要习惯查看文档。...
2021-02-08 17:45:55
193
原创 spring源码:目录
目录1. fsfs前言这期博客会讲解spring源码,是边学习边总结,难免会有一些疏忽,希望大家见谅!围绕从外到内进行讲解,先认知在详细了解。
2021-02-08 17:45:00
209
原创 springboot+netty开发简易式游戏:完善游戏页面
代码1. tank.jsvar ownBullets = new Array(), otherBullets = new Array();function Tank(args) { this.x = args.x; this.y = args.y; this.w = 20; this.h = 20; this.id = args.id; this.name = args.name; this.speed = 2; this.isLive = args.isLive; thi
2021-01-12 13:20:53
644
原创 springboot+netty开发简易式游戏:netty基础
需要了解的有,EventLoopGroup、selector、channel、pipeline、channelContext、IniterfiChannel、InBound、OutBound,还有很多,不过我们用不到,就不写了。概念
2021-01-11 23:04:46
456
原创 springboot+netty开发简易式游戏:netty后台开发
netty基础略,如果有不懂需要编写,可以留言代码1. GameServer文件package tank.netty;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.netty.channel
2021-01-11 23:01:01
1026
原创 springboot+netty开发简易式游戏:用户后台开发
先上图用户服务器开发1. login.html和register.html页面,就一个form表单,登录和注册一样,改下地址就行了<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <title>登录</title> <meta charset="utf-8"></head><body>
2021-01-11 13:01:36
1076
原创 springboot+netty开发简易式游戏:让自己的坦克动起来
先上结果图相当简易T_T !!到这里依旧是前台游戏页面开发。代码代码很笼统也有点乱,懂不懂看你运气了>_<,我会尽力的。1. html页面<!DOCTYPE html><html><head> <title>坦克大战</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="css/game
2021-01-11 12:59:44
669
原创 springboot+netty开发简易式游戏:H5 canvas基础
概念官方:<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。canvas可以理解为一块画布,画布有大小和背景颜色,我们还要需要画笔和橡皮。var canvas = document.getElementById('canvas');var ctx = canvas.getContext('2d');ctx 大部分人都比作为画笔,个人觉得是canvas的使用权和控制权(上下文对象)较为准确。getContext参数‘2d’,表示取的canvas为2维画布,‘3d
2021-01-11 12:47:36
548
原创 springboot+netty开发简易式游戏:项目搭建
环境ide:idea 2020.3jdk:11mysql:5.7依赖这个直接给出pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://
2021-01-11 12:41:48
736
easypoi怎么实现三层数据关联导入
2024-09-03
powerjob 官方HTTP处理器 无法发送请求
2024-05-09
spring @Validated 参数不为空再校验
2023-11-22
mysql数据库的脏读问题
2023-06-01
java 怎么查看当前线程锁的种类
2023-05-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅