自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot 3.x 整合 RocketMQ:实现广播消息

***删除笔记本地缓存*/广播消息是一种消息分发模式,确保所有订阅的消费者都能够接收到相同的消息,而不是轮流接收和处理不同的消息。它适用于需要所有消费者接收到相同消息的场景,比如通知系统、数据同步等。RocketMQ 支持广播模式,可以通过来实现这种消息传递方式。

2024-12-20 10:30:00 1341

原创 消息中间件RocketMQ

MQ(Message Queue,消息队列)是一种在计算机系统中实现消息传递的中间件技术,通常用于解耦和异步处理。它通过将消息(数据)从发送方(生产者)传递到接收方(消费者)来实现系统组件之间的通信。消息队列允许系统中的不同组件在不直接依赖彼此的情况下进行交互。

2024-12-19 17:20:27 1206 1

原创 引入二级缓存:Caffeine 本地缓存

二级缓存的主要作用是优化缓存的存取效率,通过合理地结合本地缓存(一级缓存)和分布式缓存(如 Redis,二级缓存),可以有效提升系统性能、降低数据库压力、减少访问延迟并提高缓存命中率。同时,它还可以帮助解决缓存穿透、缓存雪崩等常见问题,是现代高性能系统和分布式架构中的常见设计模式。

2024-12-18 11:00:53 582

原创 异步将用户信息存入 Redis 缓存

主要是为了解决Redis的缓存问题,异步将用户信息存入Redis缓存。

2024-12-17 21:46:46 723

原创 SaToken 权限认证框架

等一系列权限相关问题。Sa-Token 目前主要五大功能模块:登录认证、权限认证、单点登录、OAuth2.0、微服务鉴权。

2024-10-26 11:29:23 474

原创 Spring Boot —— Logback 日志框架

上述代码引入了 Spring Boot 提供的 Logback 默认配置,确保基本日志工作正常。:用于将日志输出到文件,并且使用滚动策略来管理日志文件。:定义了日志的输出格式,以及文件编码格式。:日志记录器的名称,最多50个字符。:日志文件的路径和文件名模板,:项目启动时不清理历史日志文件。:日志级别,左对齐,宽度为5。:每个日志文件最大 10MB。:定义了日志滚动策略,使用。:定义了日志文件的命名模式。:保留 30 天的日志文件。:定义了应用的名称,值为。:总日志文件大小没有限制。

2024-10-25 15:02:10 1472

原创 Spring Boot 自定义响应工具类

success: 是否请求成功,布尔型,true表示接口请求成功,false表示执行失败;data: 服务端响应数据,对象类型;

2024-10-23 11:08:34 411

原创 Mybatis代码生成器Mybatis-Generator使用及配置中出现找不到的情况

MyBatis Generator(MBG)是一个用于自动生成MyBatis代码的工具,旨在简化Java应用程序中与数据库交互的过程。它通过分析数据库表结构,自动生成映射文件、Java模型类和基本的SQL语句,大大提高了开发效率。记住,如果你是父项目中引入之前没有加载过的的依赖需要重新创建一个新的</dependencies>模块来引入新的依赖,否则你的本地依赖库将没有这个新的依赖(如图);

2024-10-22 21:41:47 1230

原创 SpringBoot定义业务异常类:

下面这串代码定义了一个名为的自定义异常类,该类扩展了,并用于表示业务逻辑中的异常情况。类的设计允许通过一个实现了接口的对象创建异常实例,从而使得异常可以包含业务逻辑相关的错误信息。这种设计模式使得异常处理更具灵活性和可维护性,特别是在复杂的业务逻辑中。: 声明了一个私有字符串变量errorCode,用于存储错误码。错误码通常用于标识特定的错误类型。: 声明了一个私有字符串变量,用于存储与错误相关的具体消息。构造 BizException函数,接受一个实现了接口的对象作为参数使用传入的对象来设置。

2024-10-20 11:22:44 504

原创 文件的模块化上传

首先,指定了要读取的源文件路径为 "D:\PR\剪辑材料\文件传输\1.mp4",并创建了对应的。指定了存放分割块的目录路径为 "D:\PR\剪辑材料\文件传输\chunk"。计算出需要将源文件分割成多少块,通过将源文件的长度除以块大小,并向上取整得到。对象,用于读取和写入文件 "D:\PR\剪辑材料\文件传输\2.mp4"。,代表了文件夹 "D:\PR\剪辑材料\文件传输\chunk"。然后,检查指定的文件是否存在,如果不存在则创建一个新文件。方法将读取到的数据写入到目标文件中,直到文件读取结束。

2024-10-17 20:44:22 527

原创 静态页面:网格布局

grid-template-columns:定义一行有几列。grid-template-rows:定义有几行。这里举例两个按钮来展示网格布局功能。以上两个都可以去调节他们的间距。

2024-10-16 21:42:52 305

原创 拦截器实现拦截到人员的id

【代码】拦截器实现拦截到人员的id。

2024-10-08 14:27:19 461

原创 缓存中的双写一致

装为mysql的一个从节点,canal通过读取binlog数据更新缓存利用canal中间件,不需要修改业务代码,伪。而延时双删虽然极大可能的控制了脏数据的出现,但是还是会有少部分情况出现脏数据,因为延时的时间不确定,做不到强一致。:当修改了数据库中的数据后,也要修改缓存中的数据,保持数据库与缓存中数据的一致性。读取操作:缓存命中,直接返回,未命中查询数据库,写入缓存,设置超时时间。存删除使用MQ中间中间件,更新数据之后,通知缓。1.先删除缓存还是先操作数据库。保证在缓存中不会出现脏数据。

2024-10-07 10:32:05 434

原创 Maven生命周期与插件

插件与生命周期内的阶段绑定,在执行到对应的生命周期时执行对应的插件。Maven构建生命周期描述的是一次构建过程经历了多少个事件。default:核心工作,例如编译,打包,部署等。默认maven在各个生命周期上绑定有预设的功能。Maven对项目构建的生命周期划分为3套。site:产生报告,发布站点等。通过插件可以定义其他的功能。clean:清理工作。

2024-10-06 10:53:01 358

原创 Maven的作用

依赖传递的冲突问题 :自己的直接依赖与间接依赖里面存在相同的依赖时候用谁的依赖版本?路径优先:当依赖中出现相同的资源时,层级越深(级别数越大),优先级越低,层级越浅,优先级越高。间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源(禁止套娃 (—_—!声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的(父级依赖的配置在。依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题。特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖优先配置的。

2024-10-06 10:50:43 564

原创 Java:关于拦截器以及JWT令牌的使用

3.配置JWT拦截器,将拦截器交给WebMVC。

2024-10-04 11:34:17 334

原创 Redis连接java----Jedis

【代码】Redis连接java----Jedis。

2024-10-04 11:26:48 346

原创 MyBatis-Plus 提供的通用服务的实现

MyBatis-Plus 是一个功能强大且易于使用的 MyBatis 增强工具,通过提供丰富的特性和简化操作,提高了开发效率,降低了维护成本。适合各种规模的 Java 项目,特别是需要频繁进行数据库操作的场景。MyBatis-Plus 是 MyBatis 的一个增强工具,旨在简化开发并提高生产力。它在保留 MyBatis 原有功能的基础上,提供了许多额外的特性和简化操作,

2024-10-03 12:10:55 165 2

原创 Redis缓存问题:缓存穿透,缓存击穿,缓存穿透

2.逻辑过期,查询缓存时,逻辑时间过期,获取互斥锁并开启新线程,在新线程中进行数据重建以及重置逻辑过期时间,在原线程中依旧返回旧数据,直至新线程释放锁,才获取新数据(数据重建的数据)。缺点:实现复杂,存在误判(误判率:数组越大,误判率越小,但是内存消耗越大)(不存在的数据在进行hash函数获取hash值时,取得位置与存在数据重合)1.互斥锁,查询缓存未命中时,获取互斥锁,在此线程完成数据重建,写入缓存,释放锁。布隆过滤器,拦截不存在的数据,不存在,直接返回。无效请求:用户请求的数据在数据库中不存在。

2024-10-03 12:10:22 498

原创 实用工具类LocalStrorageUtil

Localstorage是一个实用工具类,使用 ThreadLocal 来存储和获取与当前线程关联的对象。这种方式的存储可以确保线程安全,且每个线程都有自己独立的存储空间,不会与其他线程的数据冲突。//提供ThreadLocal对象,

2024-10-03 11:46:19 222 1

原创 # 文件的模块化上传

/获取文件File sourceFile = new File("D:\\PR\\剪辑材料\\文件传输\\1.mp4");//读取指定文件的内容,r表示只读,不能对其进行修改//定义一个文件用来接受读取文件(存放读取文件)String chunkDirPath = "D:\\PR\\剪辑材料\\文件传输\\chunk\\";//指定存储文件的大小//计算出一个文件分割成多个块所需要的块数,向上取整//定义数组用来储存字节,用于暂存从源文件读取的数据//对块数进行循环遍历。

2024-10-03 11:45:01 1245

空空如也

空空如也

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

TA关注的人

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