自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringCloud

Component// 登录校验逻辑// 放行public int getOrder() { // 过滤的顺序,数字越大越靠后return 0;需要实现GlobalFilter和Ordered接口:网关内部的上下文对象,保存网关共享对象如:request,respone,session,或者一些自定的共享属性。:当前过滤器执行完后,要调用过滤器链中的下一个过滤器。Ordered接口作用。

2025-07-13 23:01:59 933

原创 Maven

但是中央仓库一般是在国外的,下载比较慢,所以我们会引入第三者-----远程仓库(私服)

2025-07-10 14:40:37 834

原创 Java基础--stream的使用

两种方法:方法一更实用。

2025-07-09 20:06:06 286

原创 Java知识梳理——集合框架

默认PriorityQueue创建的是小根堆,如果需要大根堆需要我们自己传比较器。p.offer(3);p.offer(2);p.offer(1);p.offer(5);p.offer(4);p.offer(3);p.offer(2);p.offer(1);p.offer(5);return age;@Override// 要么传比较器,要么Person对象要实现Comparable接口,重写compareTo方法。

2025-07-08 21:45:36 537

原创 Vue3-组件化-Vue核心思想之一

组件的生命周期的四个阶段:1. 创建阶段:创建响应式数据2. 挂载阶段:渲染模板3. 更新阶段:修改数据,更新视图4. 卸载阶段:卸载组件之前把代码写在⼀起的,数据直接使⽤即可;现在是组件化开发,通过代码拆分和组合的⽅式进⾏开发,这种情况下,还要达到和不拆分之前⼀样的效果,这时组件之间难免需要数据传递,这就需要组件之间进⾏通信。封装⼀段 公共的DOM操作 代码,便于复⽤。

2025-07-04 22:11:13 1060 1

原创 Vue3-指令及其相关知识

4.事件绑定指令(v-on)阅读前置知识:表达式是什么?◦ 所有的字⾯量和变量名◦ 对象.属性名◦ 算术运算或三元运算◦ ⽅法的调⽤。

2025-07-02 12:49:02 690

原创 Vue工程化项目创建,基本概念了解,入门程序

这个简单不演示,注意这里下 node.js 之后会自动配置环境变量。

2025-06-08 19:58:13 325

原创 浏览器网站禁止黏贴,但是要交作业怎么快速黏贴

​写这篇博客的原因:学校最近要求使用 iwrite 写英语作文,但是浏览器禁止黏贴,我们自己只能手动输入,但是作为程序猿的我想到了一个很好的解决方案。​

2025-06-02 19:19:39 232

原创 vscode配置和Vue开发配置

1.可以更好看的显示文件图标2.用户快速打开文件使用步骤:在html文件下右键点击 open with live server 即可。

2025-06-01 17:35:17 471 1

原创 使用redis代替session的登录校验

这里存储用户信息使用hash结构进行存储。使用String和json存储不是那么方便。因为原本使用session的方案会自动帮我们进行校验,这里我们使用redis进行代替有很多东西都需要我们自己去存储。前端会把token存放在请求头中,我们每次校验的使用从请求头中获取即可。

2025-05-27 19:31:53 501

原创 rabbitmq的高级特性

每个 RabbitTemplate 只能配置一个 ReturnCallback,因此我们可以在配置类中统一设置。@[email protected]("触发return callback,");});由于每个消息发送时的处理逻辑不一定相同,因此ConfirmCallback需要在每次发消息时定义。@Test// 1.创建CorrelationData// 2.给Future添加ConfirmCallback@Override。

2025-05-27 14:05:23 1310

原创 一篇文章带你了解什么是幂等性,如何确保消息的幂等性

相同输入的重复操作,其结果应该保持一致。数据的查询一般是幂等的,但是删除,修改,新增不是幂等的。

2025-05-27 12:44:02 943 1

原创 rabbitmq的使用介绍

代码实现:代码实现: 代码实现:代码实现:

2025-05-25 20:35:35 1162 1

原创 初识消息队列

缺点:①拓展性差:代码冗余在了一起,所以拓展性差。②性能下降:调用者需要等待服务提供者执行完返回结果后,才能继续向下执行,也就是说每次远程调用,调用者都是阻塞等待状态。最终整个业务的响应时长就是每次远程调用的执行时长之和。③级联失败:由于我们是基于OpenFeign调用交易服务、通知服务。当交易服务、通知服务出现故障时,整个事务都会回滚,交易失败。这其实就是同步调用的问题。优点:①时效性强,等待到结果后才返回。

2025-05-25 14:35:40 962

原创 一篇文章带你彻底理解,强引用,软引用,弱引用,虚引用及其用法

强引用(Strong Reference)弱引用(Weak Reference)

2025-05-23 20:55:31 378

原创 一篇文章带你理解ThreadLocal原理和理解内存泄漏的原因

很多人图方便,把定义为静态变量,全局共享。这样会延长实例生命周期,即使线程退出了,它挂的值还在那儿——弱引用还没释放,value 就一直占着内存不放。

2025-05-23 20:36:51 1131

原创 黑马点评-实现安全秒杀优惠券(使并发一人一单,防止并发超卖)

出现的问题:在高并法的情况下存在多买的情况,导致商品成为负数。

2025-05-23 13:17:20 1153

原创 为啥添加了@Transactional注解事务还是不生效,一篇文章带你彻底理解

/ 抛出 MyException,不回滚。

2025-05-23 11:41:47 585

原创 黑马点评-实现分布式锁

注意:使用setnx实现,在之前解决缓存击穿的时候也用了setnx这个命令实现互斥锁。

2025-05-23 10:50:23 331

原创 黑马点评-使用redis生成全局唯一id

② 如果未来数据量很大,数据要存在数据库集群里面,这时候使用主键自增会重复。序列号:32bit,秒内的计数器,支持每秒产生2^32个不同ID。时间戳:31bit,以秒为单位,可以使用69年。ID的组成部分:符号位:1bit,永远为0。④ 数据库自增(就是redis的原理)① id的规律太明显,容易泄露数据。

2025-05-15 21:21:00 353

原创 黑马点评-解决缓存击穿和缓存穿透

【代码】黑马点评-解决缓存击穿和缓存穿透。

2025-05-15 12:38:20 344

原创 苍穹外卖-创建阿里云oss工具包

【代码】苍穹外卖-创建阿里云oss工具包。

2025-05-11 19:58:47 205

原创 苍穹外卖-公共字段自动填充

*** 更新操作*/UPDATE,/*** 插入操作*/INSERT/*** 自定义注解,用于标识某个方法需要进行功能字段自动填充*/@Target(ElementType.METHOD) //指定这个注解只能加在方法上面// 数据库的操作类型:UPDATE INSERT/*** 自定切面类,实现公共字段自动填充处理逻辑*/@Aspect@Component@Slf4j/*** 切入点*/

2025-05-09 18:17:46 238

原创 苍穹外卖-统一对日期格式化处理

当然在这个方法里面也可以注册拦截器这个方法和实现 WebMvcConfigurer 接口注册拦截器一样,但是这两种方法还是有区别的 继承 WebMvcConfiguration 这个办法用的比较少有的地方还有坑,具体的可以问ai。注意:下面添加的代码在代码启动运行的时候就会运行。

2025-05-09 14:08:11 155

原创 苍穹外卖-实现更简洁分页查询

底层使用了mybais的拦截器实现,会把后面的一条sql动态的拼接,会动态的把 limit 关键字拼接上去,然后动态的拼接相应的数据,这样的好处就是我们不用自己拼接翻页的sql语句了。

2025-05-09 12:01:47 137

原创 苍穹外卖-获得当前登录用户的id

在拦截器里面获取 token 并从 token 获取当前用户的 id,并把id存放在 BaseContext 里面,如果在这次请求中需要用户id的话直接调用 getCurrentId 这个方法即可。为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。一个Thread,而是Thread的。

2025-05-09 11:21:12 210

原创 使用正则表达式实现简单输入验证包

使用正则表达式实现简单输入验证包

2025-04-25 21:43:31 214

原创 springboot自动装配的原理

深入理解springboot的自动装配

2025-04-20 16:40:29 184

原创 Linux基础指令

cp指令⽤于复制⽂件或⽬录,如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存在的⽬录,则它会把前⾯指定的所有⽂件或⽬录复制到此⽬录中。2. 当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。3. 当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,mv命令将各参数指定的源⽂件均移⾄⽬标⽬录中。• -f 或 --force 强⾏复制⽂件或⽬录, 不论⽬的⽂件或⽬录是否已经存在。

2025-04-18 09:36:10 465

原创 数据加盐/加密

是指把任意⻓度的输⼊消息数据转化为固定⻓度的输出数据的⼀种密码算法. 摘要算法是不可逆的, 也就是⽆法解密. 通常⽤来检验数据的完整性的重要技术, 即对数据进⾏哈希计算然后⽐较摘要值, 判断是否⼀致. 常⻅的摘要算法有: MD5, SHA系列(SHA1, SHA2等), CRC(CRC8, CRC16,CRC32)

2025-04-17 21:54:00 393

原创 JWT令牌实现登录校验

JWT由三部分组成, 每部分中间使⽤点 (.) 分隔,⽐如:aaaaa.bbbbb.cccc① Header(头部) 头部包括令牌的类型(即JWT)及使⽤的哈希算法(如HMAC SHA256或RSA)② Payload(负载) 负载部分是存放有效信息的地⽅, ⾥⾯是⼀些⾃定义内容. ⽐如:{"userId":"123","userName":"zhangsan"} , 也可以存在jwt提供的现场字段, ⽐如exp(过期时间戳)等.

2025-04-16 11:11:31 414

原创 Spring

这五个注解作用都一样,只是意义不一样,用来提高代码的可读性。@Controller:控制层,接收请求,对请求进⾏处理,并进⾏响应。@Servie:业务逻辑层,处理具体的业务逻辑。@Repository:数据访问层,也称为持久层,负责数据访问操作。@Configuration:配置层,处理项⽬中的⼀些配置信息。@Component:其他。

2025-04-12 20:49:24 1129

原创 javaSE知识梳理(一)

权限修饰符] abstract class 类名{[权限修饰符] abstract class 类名 extends 父类{[其他修饰符] abstract 返回值类型 方法名([形参列表]);//注意没有方法体注意事项:1. 抽象类不能创建对象。2. 抽象类中,也有构造方法,是供子类创建对象时,初始化父类成员变量使用的。3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。

2025-04-02 22:09:00 807

原创 java知识梳理(二)

枚举类型本质上也是一种类,只不过这个类的对象是有限的,只有固定的几个,不能让用户随意创建。注意:①枚举类的构造方法是私有的。②是 java.lang.Enum 的子类,也就是说,自己写的枚举类,就算没有显示的继承Enum,但是其默认继承了这个类。

2025-04-02 19:19:23 635

原创 服务器程序架构演变(单机->分布式)

1.应用(Application)/ 系统(System)为了完成⼀整套服务的⼀个程序或者⼀组相互配合的程序群。⽣活例⼦类⽐:为了完成⼀项任务,⽽搭建的由⼀个⼈或者⼀群相互配的⼈组成的团队。

2025-03-26 13:44:59 596

原创 Spring MVC

Controller:定义⼀个控制器,Spring 框架启动时加载,把这个对象交给Spring管理,属于Ioc&Di的内容。@ResponseBody:定义返回的数据格式为⾮视图, 返回⼀个 text/html信息目前的我们只需要理解必须要加 @RestController 这个注解就可以了,它是我们启动程序必须要加的。② @RequestMapping使用。

2025-03-24 20:42:42 939

原创 springboot项目启动常见的问题以及配置以及一些使用技巧

这里要把xml文件从国外的镜像源改成国内的镜像源。改镜像源可以查看这篇文章。

2025-03-24 16:54:25 248

原创 Spring Boot

有三种种配置文件:application.yaml,application.yml,application.properties,但是我们一般使用yml结尾的配置文件其它一般不用。

2025-03-24 16:44:16 441

原创 docker入门

自定网络地优点:而且通过自定义的网络可以:在自定义网络中,可以给容器起多个别名,默认的别名是容器名本身;在同一个自定义网络中的容器,可以通过别名或容器名互相访问,在非自定网络中是不可以使用容器名相互访问地。容器内端口往往是由容器内的进程决定,例如MySQL进程默认端口是3306,因此容器内端口一定是3306;不使用自定义网络存在的问题:可以通过容器运行时分配的ip地址,可以让容器之间相互访问,但是容器重启之后ip地址会改变,所以我们可以自己创建一个网络。,当访问宿主机指定端口时,就是在访问容器内的端口了。

2025-03-24 16:43:01 843

原创 Mybatis & Mybatis Plus

为了防止sql语句只写在业务处理层,所以有了自定义SQL,我们可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自定义SQL语句中剩下的部分。

2025-03-24 16:27:30 926

空空如也

空空如也

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

TA关注的人

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