- 博客(58)
- 收藏
- 关注
原创 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
原创 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
原创 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
原创 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
原创 将日志额外写入到自定义日志文件(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
原创 如何跨平台调用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
原创 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅