自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 前端cors跨域问题

2026-08-25 17:43:13 167

原创 rsa非对称加密,加签验签

在现有接口上增加一层服务端到服务端的请求合法性校验。只有持有对应 RSA 私钥的 PHP 调用方才能生成后端可验签通过的请求,从而拦截无密钥的第三方盲刷请求。

2026-08-21 15:56:12 223

原创 记一次基于ruoyi-vue新增小程序服务模块,小程序登陆相关

小程序后端以/api为统一前缀提供服务。新增wx_user小程序用户表,提供小程序登录接口(微信 code 换 openid 自动注册并签发专用 token)。小程序专用 token 以app为前缀,与后端Bearer体系通过请求头前缀、Redis 缓存 key、JWT claim 键进行区分,并通过独立的 Servlet 过滤器与独立的 Redis 缓存实现鉴权隔离。注意:小程序 token 与后端 token共用同一个请求头,仅以前缀app(小程序)与Bearer(后端)区分;目前签名密钥沿用后端。

2026-08-19 17:26:49 263

原创 spring security的配置问题,permitall和过滤器的问题

调用此方法时仍会进入下面配置的JwtAuthenticationTokenFilter过滤器以及cors过滤器。

2026-08-19 17:02:24 191

原创 gateway服启动输出台显示

这是 Gateway 的正常运行时行为,每当路由配置(从 Nacos 或服务发现)更新时,都会重新计算路由映射。当前网关服务以 gateway-service 为服务名,IP 192.168.0.28,端口 8080,成功注册到 Nacos 的 DEFAULT_GROUP 分组中,可供其他服务发现和调用。Sentinel 已自动配置,采用默认的限流响应(HTTP 429,消息为“请求过于频繁,请稍后再试”),并注册了网关过滤器和异常处理器,用于后续对路由进行流量控制。

2026-07-09 15:09:49 275

原创 MyBatis-Plus的MetaObjectHandler

不要搞混了 updateTime 的逻辑:插入时也要给 updateTime 赋值(通常是 FieldFill.INSERT_UPDATE),否则插入时该字段可能为 null 导致报错。它利用 MyBatis-Plus 的拦截器机制,在执行 SQL 之前拦截请求,通过反射获取实体类字段,根据字段上的注解策略(如 INSERT、UPDATE)自动填入指定的值。字段命名要匹配:metaObject 中的字段名(如 “createTime”)必须和实体类中的属性名完全一致(驼峰命名)。

2026-07-09 14:53:43 204

原创 gateway启动报错

Gateway 基于 Spring WebFlux(响应式非阻塞),而 MVC 基于 Servlet(阻塞式),两者的底层模型完全不同,Spring Boot 会自动检测类路径,如果同时存在两者,就会启动失败。删除该依赖,只保留 spring-boot-starter-webflux(Gateway 会间接引入它)。你的项目依赖中同时引入了 spring-boot-starter-web(MVC)和 spring-cloud-starter-gateway(Gateway)。找到后按上述方式排除或移除。

2026-07-09 14:44:33 349

原创 jwt+redis

同时,将 JWT 的唯一编号(jti 字段)作为 Key,用户信息作为 Value 存入 Redis,过期时间与 JWT 保持一致。单设备登录(踢人下线) 登录时,将新 Token 的 jti 存入 Redis,并删除该用户之前的 jti,即可实现“后登录挤掉前一个”的效果。性能保障 JWT 的验签(非对称加密)在网关本地完成,Redis 仅做一次 GET 查询(耗时约 0.5ms),对整体性能影响极小。先解析 JWT,验证签名和有效期(这两步不需要 Redis,速度极快)。🔍 这个方案是如何运作的?

2026-07-08 16:06:55 242

原创 spring cloud里面GlobalFilter和HandlerInterceptor的执行顺序

在Spring Cloud(Gateway)中,GlobalFilter 和 HandlerInterceptor 不存在直接的执行顺序比较,因为它们位于请求链路中完全不同的层级和时间点。GlobalFilter 在 API网关层 执行,而 HandlerInterceptor 在请求到达后端微服务后,于Spring MVC框架内执行。HandlerInterceptor.postHandle(): 在Controller方法执行之后,视图渲染之前执行。

2026-07-07 10:55:12 203

原创 es运行时字段

如上是mapping中的部分字段,然后put如下。

2026-07-01 15:38:23 225

原创 mysqlplus希望查询到已删除数据

表里面有一条数据,deleted=1。使用 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();

2026-06-17 10:58:18 279

原创 Transaction rolled back because it has been marked as rollback-only报错分析

这个错误是 Spring 事务管理中的典型问题,通常发生在嵌套事务场景中。核心原因是:内部事务操作触发了回滚标记,但外部事务尝试提交时被强制回滚。

2025-06-10 10:58:49 334

原创 收藏一些好的文章博客(持续更新)

2025-06-06 16:23:09 190

原创 resttemplate调用第三方接口报错HttpClientErrorException: 401 Unauthorized: [no body]。HttpURLConnection中隐藏坑

【代码】使用resttemplate报错org.springframework.web.client.HttpClientErrorException$Unauthorized: 401 Unauthoriz。

2025-03-18 14:56:20 1207 3

原创 一些AI工具以及IDEA安装通义灵码

文档:https://docs.trae.ai/docs/multimodal-input?大家写代码都需要用大模型的工具,如果不知道选用那个,我推荐两个。代码优化,代码提示大模型都能做的,普通的业务逻辑一般情况下比人完成的好。

2025-02-26 10:44:36 927

原创 关于binary和multipart/form-data上传文件的区别

快手创作中心的视频上传。

2025-02-13 09:17:07 293

原创 spring boot项目打成war包部署

mvn clean package -Dmaven.test.skip=true 即可, 等待打包完成,出现 [INFO] BUILD SUCCESS 即为打包成功。在 pom.xml 里找到spring-boot-starter-web依赖,在其中添加如下代码,最后在浏览器中输入http://localhost:[端口号]/[打包项目名]/在 pom.xml 中指定 maven-war-plugins 插件的版本。3.修改启动类,并重写初始化方法。2.移除嵌入式tomcat插件。1.修改pom.xml。

2024-11-13 10:46:16 992 1

原创 springboot读取k8s中configmap配置

配置放入application。yaml文件中,就算修改了配置文件,也需要重新编译发布k8s容器。配置成configmap,从config中读取,只需要重启容器并不需要重新编译发布,节省时间。相关资料参考:https://www.sohu.com/a/362983935_764649。

2024-09-09 14:39:12 329

原创 常用linux命令

1.统计统计c3957cf8c39446ddb26e176e3f88be6a在spider-flow-info.log文件中出现的次数。

2024-09-02 16:16:49 314

原创 fulgc

2024-08-26 09:25:53 385

原创 将日志额外写入到自定义日志文件(spider开源框架)

3.然后log.info的内容就会写入你创建的日志文件中。2.编写一个类继承fileappender。1.首先创建一个log文件。

2024-07-25 16:38:53 300

原创 腾讯云k8s相关

比如:spiderflow-web正式环境:http://spiderflow-web.sd-backend:30001。1.某个服务腾讯云内网地址?

2024-07-23 14:57:14 473

原创 spring boot打包生成两个jar,一个可执行jar,一个原始jar

参考:https://www.baeldung.com/spring-boot-repackage-vs-mvn-package。

2024-05-17 15:06:19 320

原创 复杂json解析(其中有一个key的value是json格式的字符串)

【代码】复杂json解析。

2024-05-15 14:42:13 683

转载 使用javacv进行视频截图和视频转码

【代码】使用javacv进行视频截图和视频转码。

2024-03-06 17:19:29 897

原创 如何跨平台调用ffmpeg?史上最简单基于JavaCV跨平台执行ffmpeg命令

请参看文章:https://www.bilibili.com/read/cv14346220/

2024-03-03 16:50:01 728

原创 自 JDK 8 到 JDK 21 以来所有 Java 和 JVM 特性的分类列表

请参看文章:自 JDK 8 到 JDK 21 以来所有 Java 和 JVM 特性的分类列表

2024-02-23 11:24:32 817 2

原创 新版Spring Security弃用了WebSecurityConfigurerAdapter

在Spring Security 5.7.0-M2中,我们弃用了WebSecurityConfigurerAdapter,因为我们鼓励用户转向基于组件的安全配置。

2024-02-23 09:57:31 944

原创 如何确保事务提交后才执行异步操作

由于改代码涉及多张表操作,故使用声明式事务,并在代码末尾异步往redis里写入消息。如果此时redis里面没消息,并且我这段代码事务提交耗时相当严重,会导致数据的状态我这边还未改变,然后web端开发取到消息他发现状态字段未发生改变,从而发出告警并且没有写入es。对于“法律法规-法规库-标签管理”列表中的某一条数据,操作完标注和解析按钮后,我会更新该条数据的状态字段并向redis写入一条消息。web端开发从redis取消息会先判断一下该数据的状态字段看是否应该写入es,如果不应该,会告警。

2023-06-01 18:39:46 1489

原创 条件唯一索引-mysql

【代码】条件唯一索引-mysql。

2023-03-29 16:38:07 1207

原创 线上环境oom,解决

背景:某天运维反馈某个接口报错查询日志解决:修改下k8s内存资源limit配置

2023-03-16 18:11:04 175

原创 canal adapter1.1.4同步中的坑

canal同步

2023-02-14 10:57:37 303

原创 spring boot使用AbstractRoutingDataSource实现动态数据源切换

1.请参见项目代码地址请参看博客开源框架RuoYi-Vue学习之基础框架搭建(集成mybatis实现基本增删改查以及PageHelper分页)1.Spring boot提供了AbstractRoutingDataSource根据用户定义的规则选择当前的数据源,这样我们可以在执行查询之前,设置使用的数据源。实现可动态路由的数据源,在每次数据库查询操作前执行。它的抽象方法determineCurrentLookupKey()决定使用哪个数据源。2.org.springframework.jdbc.datasou

2022-06-14 10:52:35 911

原创 Dubbo2.7文档详解(含使用IntelliJ IDEA构建dubbo项目)

本篇博文参考dubbo官方文档本编博文参考javaguide之rpc文章目录一.RPC1.1 什么是 RPC?1.2 为什么要用 RPC?1.3 RPC 能帮助我们做什么呢?1.4 RPC 的原理是什么?1.5 常见的 RPC 框架总结二.既有 HTTP ,为啥用 RPC 进行服务调用?2.1 RPC 只是一种设计而已2.2 HTTP 和 TCP三.Dubbo3 简介3.1 Dubbo 的 XML Schema 配置参考手册四.实战spring boot集成dubbo3.x(模拟一下数据交换业务[集成了

2022-06-13 11:23:45 2444

原创 深度剖析:Redis分布式锁到底安全吗?

转载博客:深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!与分布式锁相对应的是单机锁,我们在写多线程程序时,避免同时操作一个共享变量产生数据问题,通常会使用一把锁来互斥,以保证共享变量的正确性,其使用范围是在同一个进程中。如果换做是多个进程,需要同时操作一个共享资源,如何互斥呢?1.想要实现分布式锁,必须要求 Redis 有互斥的能力,我们可以使用 SETNX 命令。我们可以同时开两个redis-cli客户端来测试,客户端 1 申请加锁,加锁成功,客户端 2 申请加锁,因为它后到达,加锁失败

2022-06-08 16:17:10 1144

原创 开源框架RuoYi-Vue学习之角色/菜单/权限

1.请参见项目代码地址文章目录一.菜单1.1 菜单表结构2.1 在system模块中编写菜单业务层接口ISysMenuService及实现类以及Mapper层,在admin模块中编写菜单控制层SysMenuController。在common模块中编写实体类SysMenu。2.2 根据用户id获取菜单列表一.菜单1.1 菜单表结构CREATE TABLE `sys_menu` ( `menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID

2022-04-26 10:48:42 1832 1

原创 开源框架RuoYi-Vue学习之集成redis/集成验证码

文章目录一.集成redis二.验证码功能(图形验证码/数学验证码)三.使用postman测试验证码四.存在的问题:使用redis工具查看为二进制数据,对开发者不友好4.1 注意4.2 解决方法-->配置序列化器一.集成redis1.在common模块中添加redis依赖以及池连接工厂。在common中编写redis工具类RedisCache。 <!-- spring‐boot‐starter‐data‐redis,默认解析Lettuce --> <

2022-04-24 15:19:29 1964

原创 Springboot中@ConfigurationProperties-->加载static静态属性为null的问题

一.问题1.springboot 使用 @ConfigurationProperties注入对象 普通方法调用可以 在静态方法中调用的时候读取不到参数二.文件@Component@PropertySource("classpath:/oss.properties")@ConfigurationProperties(prefix = "oss")public class OssPayProperties { private String ossbucket; private St

2022-04-21 11:24:18 1907

原创 spring security官方文档详解之Servlet应用程序

1.详情请参见spring security官方文档之Servlet应用程序文章目录一.简介二.开始/入门2.1 更新依赖项2.2 启动示例程序2.3 Spring Boot自动配置三.体系结构3.1 过滤器综述3.2 DelegatingFilterProxy3.3 FilterChainProxy3.4 SecurityFilterChain(安全过滤器链)3.5 Security Filters(安全过滤器)3.6 Handling Security Exceptions(处理安全异常)四.Auth

2022-04-13 10:34:22 3485

原创 开源框架RuoYi-Vue学习之基础框架搭建(集成mybatis实现基本增删改查以及PageHelper分页)

文章目录一.官方简介二.基础框架搭建2.1 搭建父工程ruoyi-vue-my2.2 搭建子工程ruoyi-common和ruoyi-framework和ruoyi-system(非web项目)2.3 搭建子工程ruoyi-admin(web项目)2.4 依赖管理dependencyManagement2.5 引入数据库驱动以及mybatis以及分页插件等。编写一个基本的增删改查2.6 编写ruoyi-admin的配置文件application.properties和mybatis全局配置文件mybatis

2022-04-06 15:27:09 2888

来自随便划划的一个课堂板书的pdf

来自随便划划的一个课堂板书的pdf

2025-12-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除