- 博客(59)
- 收藏
- 关注
原创 对加密字段进行模糊查询:基于分词密文映射表的实现方案
在数据安全日益重要的背景下,数据库字段加密成为保护敏感信息的常见做法,但加密后的数据给模糊查询带来了挑战。本文提出了一种基于分词密文映射表的解决方案,实现对加密字段的高效模糊查询。该方案通过建立分词密文映射表,在数据新增或修改时对字段值进行分词组合加密,并在查询时对关键字加密后在映射表中进行LIKE查询,最终通过主键回原表查询完整数据。
2025-05-15 17:28:29
899
原创 Redis实现分布式锁
基础实现简单但存在安全隐患,适合对一致性要求不高的场景。Lua脚本实现通过原子操作解决了安全问题,是生产环境推荐的做法Lua脚本在Redis中执行是原子的,适合实现复杂的多步操作实际应用中还可以结合Redisson等成熟框架,它们提供了更完善的分布式锁实现。
2025-05-01 22:40:46
883
原创 Canal 解析与 Spring Boot 整合实战
Canal 是阿里巴巴开源的一款基于 MySQL 数据库增量日志解析(Binlog)中间件,它模拟 MySQL 的从机(Slave)行为,监听 MySQL 主机的二进制日志(Binlog),并解析出数据变更事件(DML 和 DDL),然后将这些事件转发给下游应用,从而实现数据的实时同步和处理。Canal 是一款强大的 MySQL 数据库增量日志解析中间件,通过模拟 MySQL 从库的行为,实现数据的实时同步和处理。
2025-03-19 15:06:36
1005
1
原创 多环境开发-Profiles
通过本文的介绍,我们了解了 Spring Boot 多环境开发的基本使用方法和分组管理技巧。合理使用多环境配置可以提高开发效率,减少环境切换时的配置错误。希望本文对你的项目开发有所帮助。
2025-03-17 15:33:33
880
原创 Kafka使用教程
日志聚合:收集和汇总系统日志,便于集中管理和分析。事件源:实时处理用户行为事件,如点击流、购买行为等。流处理:与流处理框架(如Apache Flink、Apache Spark Streaming)结合,进行实时数据分析。微服务通信:作为微服务架构中的消息中间件,实现服务间异步通信。物联网(IoT):处理来自传感器的实时数据,支持大规模设备的数据传输。通过以上步骤,你可以在使用Docker安装的Kafka环境中成功实现Spring Boot应用的消息发送和接收功能。
2025-03-10 18:12:51
913
原创 拦截器快速入门及详解
是一种动态拦截方法调用的机制,类似于过滤器。拦截器是Spring框架中提供的,用来动态拦截控制器方法的执行。拦截器的作用:拦截请求,在指定方法调用前后,根据业务需要执行预先设定的代码。
2025-01-30 21:55:54
1259
原创 日志技术的使用
什么是日志?日志就好比生活中的日记,可以随时随地记录你生活中的点点滴滴。程序中的日志,是用来记录应用程序的运行信息、状态信息、错误信息的。为什么要在程序中记录日志呢?便于追踪应用程序中的数据信息、程序的执行过程。便于对应用程序的性能进行优化。便于应用程序出现问题之后,排查问题,解决问题。便于监控系统的运行状态。... ...之前我们编写程序时,也可以通过来输出日志,为什么我们还要学习单独的日志技术呢?这是因为,如果通过来记录日志,会存在以下几点问题:硬编码。
2025-01-30 21:08:28
866
原创 Redisson实现延迟队列
Redisson就是对Redis封装,使用Redisson实现分布式锁,实现布隆过滤器,实现延迟消息。redissonClient.getBlockingDeque(): 创建一个阻塞队列。redissonClient.getDelayedQueue(): 获取延迟队列。delayedQueue.offer(): 向队列中存储数据。blockingDeque.take(): 从队列中获取数据。生成订单,使用微信支付,30分钟不支付订单自动取消。与业务整合,根据订单id取消订单。
2024-12-18 19:57:32
467
原创 Redisson实现分布式锁
Redisson是一个在Redis的基础上实现的Java驻内存数据网格,封装很多功能,比如分布式锁,布隆过滤器,可以使用很简单方式实现这些功能。
2024-12-17 11:02:02
1084
原创 MongoDB快速入门
MongoDB 是在2007年由DoubleClick公司的几位核心成员开发出的一款分布式文档数据库,由C++语言编写。目的是为了解决数据大量增长的时候系统的可扩展性和敏捷性。MongoDB要比传统的关系型数据库简单很多。在MongoDB中数据主要的组织结构就是数据库、集合和文档,文档存储在集合当中,集合存储在数据库中。MongoDB中每一条数据记录就是一个文档,数据结构由键值(key=>value)对组成。文档类似于 JSON 对象,它的数据结构被叫做BSON。
2024-11-25 11:32:08
1360
原创 ThreadPoolExecutor线程池与CompletableFuture线程异步编排
ThreadPoolExecutor线程池与CompletableFuture线程异步编排
2024-10-29 09:50:41
1518
1
原创 openFeign的使用
OpenFeign 是一个基于 Spring 的声明式、模板化的 HTTP 客户端,它简化了编写 Web 服务客户端的过程。用户只需创建一个接口并添加相应的注解,即可实现对远程服务的调用。OpenFeign 是 Spring Cloud 的一部分,它支持 Spring MVC 的注解,如 @RequestMapping,使得使用 HTTP 请求访问远程服务就像调用本地方法一样直观和易于维护。Openfeign底层默认使用JDK提供的HttpURLConnection进行通信(不支持连接池),使用Openfe
2024-08-30 23:39:39
1056
原创 nacos介绍及在Linux系统中docker使用nacos
一次业务中,被其它微服务调用的服务。(提供接口给其它微服务):一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)试想一下,假如商品微服务被调用较多,为了应对更高的并发,我们进行了多实例部署,如图:此时,每个的实例其IP或端口不同,问题来了:item-service这么多实例,cart-service如何知道每一个实例的地址?http请求要写url地址,服务到底该调用哪个实例呢?如果在运行过程中,某一个实例宕机,依然在调用该怎么办?如果并发太高,临时多部署了N台实例,
2024-08-29 23:44:30
858
原创 Mybatis-Plus分页插件注意事项
使用Mybatis-Plus的分页插件进行分页查询时,如果结果需要使用进行映射,只能使用嵌套查询,而不能使用嵌套结果映射
2024-08-18 11:28:56
388
原创 springboot生成、响应图片验证码
我们平时经常会碰见图片验证码,那么在springboot中我们该怎么实现呢我们可以使用一款开源的验证码生成工具,其支持多种类型的验证码,例如gif、中文、算术等,并且简单易用,具体内容可参考其。
2024-08-16 23:12:26
482
原创 MP逻辑删除、响应忽略字段、自动填充
由于数据库中所有表均采用逻辑删除策略,所以查询数据时均需要增加过滤条件is_deleted=0。上述操作虽不难实现,但是每个查询接口都要考虑到,也显得有些繁琐。为简化上述操作,可以使用Mybatis-Plus提供的逻辑删除功能,它可以自动为查询操作增加is_deleted=0过滤条件,并将删除操作转为更新语句。具体配置如下,详细信息可参考。:在中增加如下内容:在实体类中的删除标识字段上增加注解逻辑删除功能只对Mybatis-Plus自动注入的sql起效,也就是说,对于手动在Mapper.xml。
2024-08-01 14:27:40
708
原创 Springboot中Knife4j快速入门
Knife4j是一个用于生成和展示API文档的工具,同时它还提供了在线调试的功能,下图是其工作界面。
2024-07-29 16:30:12
396
原创 MybatisPlus分页插件
分页查询是一个很常见的需求,故Mybatis-Plus提供了一个分页插件,使用它可以十分方便的完成分页查询。下面介绍Mybatis-Plus分页插件的用法,
2024-07-27 20:24:11
408
原创 MybatisPlus静态工具Db
在开发的时候,有时Service之间也会相互调用,会出现循环依赖问题,MybatisPlus提供一个静态工具类:Db,其中的一些静态方法与IService中方法签名基本一致,也可以帮助我们实现CRUD功能。
2024-05-26 18:06:35
1096
1
原创 MybatisPlus教程
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2024-05-16 16:45:00
1334
原创 SpringBoot项目部署为jar包
SpringBoot项目部署为jar包:目前所写的项目都是保存在自己电脑上运行的,别人无法使用,一般来说写好的项目会部署到固定的服务器或者租来的云服务器上面
2024-04-29 20:44:38
579
2
原创 蓝桥杯2023年第十四届省赛真题-冶炼金属
现在给出了 N 条冶炼记录,每条记录中包含两个整数 A 和 B,这表示本次投入了 A 个普通金属 O,最终冶炼出了 B 个特殊金属 X。当 V = 20 时,有:⌊75/20⌋ = 3,⌊ 53/20 ⌋ = 2,⌊ 59/20 ⌋ = 2,可以看到符合所有冶炼记录。当 V = 25 时,有:⌊75/25⌋ = 3,⌊ 53/25 ⌋ = 2,⌊ 59/25 ⌋ = 2,可以看到符合所有冶炼记录。对于 100% 的评测用例,1 ≤ N ≤ 104,1 ≤ B ≤ A ≤ 109。
2024-04-11 15:38:34
409
原创 BFS例题 青蛙跳杯子
X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。*WWWBBB其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。X星的青蛙很有些癖好,它们只做3个动作之一:1. 跳到相邻的空杯子里。2. 隔着1只其它的青蛙(随便什么颜色)跳到空杯子里。3. 隔着2只其它的青蛙(随便什么颜色)跳到空杯子里。对于上图的局面,只要1步,就可跳成下图局面:WWW*BBB
2024-03-29 20:16:25
400
原创 枚举——四平方和
四平方和定理,又称为拉格朗日定理每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0包括进去,就正好可以表示为 4个数的平方和。比如:5=0^2+0^2+1^2+2^2。7=1^2+1^2+1^2+2^2。对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4个数排序使得 0≤a≤b≤c≤d。并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。
2024-03-25 20:31:49
284
原创 分享一道DFS常见题目 C++实现路径之谜
小明冒充X星球的骑士,进入了一个奇怪的城堡。城堡里边什么都没有,只有方形石头铺成的地面。假设城堡地面是 n x n 个方格。【如图1.png】所示。按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走,也不能跳跃。每走到一个新方格,就要向正北方和正西方各射一箭。(城堡的西墙和北墙内各有 n 个靶子)同一个方格只允许经过一次。但不必走完所有的方格。如果只给出靶子上箭的数目,你能推断出骑士的行走路线吗?
2024-03-25 20:09:08
317
原创 session和cookie理解
cookie是一些数据信息,存储在浏览器端。session是存储于服务器端的特殊对象,服务器会为每一个浏览器(客户端)创建一个唯一的session。这个session是服务器端共享,每个浏览器(客户端)独享的。我们可以在session存储数据,实现数据共享。
2024-02-19 20:24:19
468
原创 SpringBoot中全局异常处理
SpringBoot给我们提供了@ControllerAdvice和 @ExceptionHandler注解注解的作用:@ControllerAdvice用来开启全局的异常捕获,@ExceptionHandler用来说明捕获哪些异常,并对这些捕获的异常进行处理。
2024-02-08 23:52:44
918
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人