自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 微服务(1)

最近主包的考试有点多,六级,期末,所以最近有点偷懒废话不多说,回归正题。

2025-12-18 22:21:29 474

原创 Docker讲解

这样就能看到启动的容器和没有启动的容器了,还有就是去进入容命令后面记得跟上-it 然后加上容器的名称,当然,容器的名称后面也可以继续跟着别的。首先大家需要先准备一下镜像,这里主包使用的是centos7,然后大家去安装,这里比较简单,主包就不带大家仔细看了,需要注意的就是。这里选择第三个,将你自己喜欢用的编辑器就行,比如vscode,比如node都可以,根据自己的喜好来就行,最后将下面的勾选上。然后去等待安装就行,最后重新启动就行,这样的话,我们的虚拟机就安装完毕。然后是配置Docker的yum库。

2025-11-30 21:27:12 1256

原创 redis实战篇--完结篇

接下来我们取判断是不是我从redis取出来的是空集合,要是空集合的话,我直接返回给前端一个空集合就行,要是不是的话,这时候我就需要取解析里面的数据,然后封装给我的商户,当然,这里做出了多一步的判断,要是我的页码是不是大于结果集的长度,因为这时候要是大于的话,我得到的null,再去数据库中查找的话,是不是就会疯狂报错?首先需要先计算当前的页码,这样我能够知道我该返回给前端的数据从哪里开始,然后取redis当中取出数据,就是取搜索,这里需要传递的是自己的位置,搜索的距离,以及我限制返回的数量。

2025-11-26 13:44:55 1100

原创 redis实战篇--达人探店,好友关注模块

主包把redis实战篇完结之后可能会去看微服务了,但是主包还是会看高级篇的,只不过更新的速度可能没有那么快了,欧克欧克,言归正传首先还是先看一下关于发布探店笔记的发布这里先去创建controller层,然后去编写impl首先就是得去查询博客的id,其实这里没必要去判断,因为我点进去的话肯定是存在的,不存在也不会展示出来,要是存在博客的话,我肯定是接着去查询博客,就是根据用户的id来设置一下名字和头像点赞这个东西也是需要controller修改一下然后去impl里面实现,这里面主要就先得去判断一下用

2025-11-25 12:59:27 747

原创 redis实战篇-秒杀优化以及redis消息队列模块

主包要期末了,最近更新的有点慢,TwT,希望不挂科言归正传。

2025-11-23 14:55:41 1104

原创 redis实战篇--分布式锁

重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都是使用synchronized修饰的,假如他在一个方法内,调用另一个方法,那么此时如果是不可重入的,不就死锁了吗?那我释放锁,是释放的是线程二的锁,这时候就出现了误删的情况。**超时释放:**我们在加锁时增加了过期时间,这样的我们可以防止死锁,但是如果卡顿的时间超长,虽然我们采用了lua表达式防止删锁的时候,误删别人的锁,但是毕竟没有锁住,有安全隐患。

2025-11-21 20:44:41 1040

原创 redis实战篇--优惠卷秒杀模块(主要是讲解自定义的不可重入锁)

由于现在我们部署了多个tomcat,每个tomcat都有一个属于自己的jvm,那么假设在服务器A的tomcat内部,有两个线程,这两个线程由于使用的是同一份代码,那么他们的锁对象是同一个,是可以实现互斥的,但是如果现在是服务器B的tomcat内部,又有两个线程,但是他们的锁对象写的虽然和服务器A一样,但是锁对象却不是同一个,所以线程3和线程4可以实现互斥,但是却无法和线程1和线程2实现互斥,这就是 集群环境下,syn锁失效的原因,在这种情况下,我们就需要使用分布式锁来解决这个问题。

2025-11-19 21:56:05 1338

原创 redis实战篇--商品缓存模块

在进行查找的时候还是需要先获取锁,要是获取到了去数据库中查找,要是没有获取到的话就是睡眠,然后递归获取,直到获取到锁,获取到锁之后化石需要再次检测redis当中是不是还是存在redis缓存,要是存在的话直接进行返回就行,要是不存在的话需要去数据库里面查找,找到的话存到redis中然后返回。这里需要的也是去redis1里面查找,不过需要注意的是,在进行插入的时候是去遍历集合,从第一个开始,最左插入法则,这里主包试了一下最右插入,前端也是正常显示,所以感觉在前端已经做了排序。

2025-11-15 19:20:16 1110 3

原创 redis实战篇--登录校验模块(主包最后会进行模块合并)

我给大家捋一捋思路,首先是发送验证码,然后进行登录校验,最后放行。在发送验证码的时候因为在之前是基于session共享来验证的,这样会使得浏览器压力大,并且在面对万级并发操作的时候也是很吃压力,虽然有nignx的负载均衡,但还是很吃压力。

2025-11-11 12:02:10 622

原创 redis【基础篇】(讲解通俗易懂)

首先来带大家安装一下redis,我们需要先下载redis,然后去上传到Linux上面。tar -zxvf ****(跟上你的压缩包名称)解压完毕之后我们需要进入解压后的目录里面,然后执行。这样的话配置就完成了,然后安装界面化软件连接就行。这个目录下面,我们需要进行解压,使用指令。接下来就是去修改配置文件。我们需要将压缩包上传到。接下来是去配置系统文件。

2025-11-06 21:29:36 282

原创 Git平民版讲解(带你手把手讲解git)

点击进去创建即可,这里大家先进行初始化主目录吧,先在主目录上面创建.bashrc文件,这样方便还原之前的版本,但是在这里大家进行学习的时候还是在创建的文件夹里面进行创建吧。#用于输出git提交日志 alias git-log=‘git log --pretty=oneline --all --graph --abbrev-commit’从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完。查看日志是git log ,不过这里还是推荐大家使用git-log的这个指令,

2025-11-05 17:53:57 523

原创 AI+若依框架(实战篇)-完结

这里面去定义一个响应式的空对象uploadRef用来获取我们进行提交的文件,这里我们直接去饿了么官网去看,然后就是关于前端的检验了,因为我们在上传的时候需要提交,所以我们首先先在提交按钮里面去通过响应式数据里面的submit进行提交,这里面因为在官网里面是使用的是ts,所以我们加个if判断就行,然后就是上传,这里面的action就是需要上传的路径,由于我们在开发环境里面,所以我们需要使用代理来进行转发请求,还要在发送的请求里面进行加上header。那你肯定是需要定义一个检验的规则,这里就是在加载之前了。

2025-10-29 21:35:13 1000

原创 AI+若依框架(实战篇)-前传

这个是黑马的在线讲义地址,我在这里只是讲述一下我的历程。

2025-10-21 09:07:03 1571

原创 Java的数据结构和算法(平民版)

在这里我们可以把i和j看成两个指针,位于整个数组的两侧,然后选取中间的一个值作为比较的中间值,每次让目标的值和中间值进行比较,中间值大的话就将指针j指向m的前一个元素,相反,要是小的话就需要将指针i去指向m的下一个值,周而复始,直至找到或者没有找到。当我的x>3的时候,我的4x的图像就一直在3x+3上面,那么我就将4x这个函数作为渐进上界,所以我们的定义就是当我的函数的x的值超过一定的数的时候,我的4x(类似这样)函数图像总是在上面,那么我就称这个函数为3x+3的渐进上界。

2025-10-20 16:00:28 1304

原创 AI+若依框架(基础篇)

大家自己去看看,我在这就是做一个汇报工作。

2025-10-18 17:56:12 699

原创 MybatisPlus框架(加强版)--微服务第一天笔记

自定义sql的使用场景就是在sql的where条件十分复杂的时候来进行使用,具体的做法就是需要在service里面去自己去用lambdawrapper来进行编写where条件。然后传递给mapper,然后你需要做的就是在mapper的接口里面去加上注解ew,或者是Constant.wrapper来进行设置名称,最后就是在xml文件里面去拼接,就是使用$符号来进行拼接,这样能够写的更加便捷。(其实现在有AI,不这样写的话其实也是可以的,最后稍加修改就行)

2025-10-16 19:54:03 1212

原创 函数式编程最终章

这里面使用了线程池但是不需要我们程序员自己去操作线程池,也避免了函数的嵌套等增加代码的可读性,这样的话我们就需要使用CompletableFuture来进行操作,这样的好处是可以进行自己传递逻辑,也就是用到了函数式编程。这里面的runasync是进行自己重写接口其实就相当于consumer了,然后supplyAsync的话就是重写Supplier这个函数式接口。对于thenAccept等方法也是如此。

2025-10-14 20:16:10 204

原创 函数式编程应用

我现在又需要知道哪个月份的销量最高,基于应用一我继续来进行扩展,我现在是已经拿到了每个月份的map集合对不对,那我现在肯定是需要进行判断求出最大值是不是,首先还是需要拿到key,value,先使用entryset进行获取到里面的值,转换成stream流,接下来调用max方法就行,里面需要传递的是一个比较器对象,再比较器里面传递的是逻辑,比较的是value的部分数据,最后消费就行。假设我现在有200w条数据里面,里面所有的信息你能想到的都有,现在我需要去筛选出每个月的销量,我现在怎么办?

2025-10-13 17:30:50 903

原创 函数式编程--Stream流(4)

这里面的parallel的意思就是让这个流去支持并行操作,在里面需要传递5个参数,第一个毋庸置疑就是你需要创建的容器是哪个,第二个参数需要传递的是我怎样去向容器中添加元素,第三个参数需要传递的是我怎么样去合并容器,调用的是addall方法进行合并,第四个参数需要传递的是最后怎样去收尾,我要是传递的是list->list,这样的意思是我不需要对收集好的集合再进行操作了。当然,我要是需要对里面进行操作的话我需要规定第五个参数,里面传递的是。接下来讲解一下关于流的特性,主要就是。

2025-10-12 18:42:10 269

原创 函数式编程--Stream流(3)

下游收集器mapping呢,主要就是用来转化的,可以根据之前的语法进行记忆,map是进行转化的(给你一个名字,转化成一个整数也是可以的),所以里面的第一个参数就是用来进行转换成所需要的值,比如我需要根据名字的长度进行分组,但是我在分组之后我不需要名字了,我需要名字的长度作为里面的值,这个时候我们就是可以使用mapping进行分组收集。对于flatmapping的话也是可以进行联想一下flatmap,虽然flatmap是将两个流进行合并,便于记忆,在flatmapping里面需要传递。

2025-10-11 18:10:45 834

原创 函数式编程--Stream流(2)

这个东西,叫做比较器,这里调用的是compareint的方法,当然你也可以进行去自己去定义,就是去调用compare进行自己定义参数,这里面的reversed是反转的意思,thencompare是继续进行比较,基于前一次的比较结果进行下一步的比较。分为两种方式第一种是实现的是T和R一样的接口,就是判断的条件,当然,最开始的时候需要传递传播的种子,也就是需要根据前一个元素进行生成下一个元素,第二个也是如此。在这里流的化简就是去实现reduce这个方法进行实现像max,sum,min,maptoint等。

2025-10-11 13:28:44 765

原创 函数式编程--Stream流(1)

比如在这里面我需要过滤类型是浆果的果子,那我就把对应的逻辑f->{f.cname.equals(“红色”)}传递进去,filter可以进行多次过滤,当然因为实现的是boolean类型的函数式接口,那么我可以把逻辑变成判断条件加上&&即可。集合—对于set,list这些collection集合的话是集合.stream,对于map的话则是需要进行变化,拿到里面的kye,value,调用的api就是enteryset,将里面的键值对转化成set集合。这里面拿到的是list集合,返回的是stream流。

2025-10-10 20:59:04 391

原创 函数式编程

先来讲一下关于内循环吧,内循环在高级函数里面说白了就是装13,但是也有好处,先说装13地方就是我其实直接就是可以进行遍历然后调转一下次序就行,但是呢,大家是高级程序员,所以使用的是高阶函数进行使用,上面图片中的就是,我是用迭代器的方式,注意下,在调用listinterator的时候默认是从头开始,一旦里面加上index的话就是从指定的位置开始遍历,我拿到之后进行看看前面是不是存在值,然后调用函数式接口进行实现,当然,我这里是函数式接口,我在进行调用函数的时候需要进行传递一下逻辑。

2025-10-10 11:50:46 225

原创 学习前端第四天

头部标签是使用header标签进行控制,导航栏是使用nav标签,main是主体内容,artical写内容的部分,aside是侧边栏,footer是页面页脚,然后就是关于div标签独占一行,span标签可以进行堆叠。描述列表是使用dl,dt,dd,dl只有一对,里面存在dt,可以有一个或者多个,dd若干,可以这样进行记忆大佬,大腿,弟弟(pink老师教的)无序列表是一对ul里面加上若干个小li,一般不在ul里面加上别的标签,但是也是可以加上去的,小li标签里面是可以进行加上别的标签。

2025-10-09 21:48:44 185

原创 函数式编程

不符合闭包的要求,我在里面定义了一个int k,虽然k的值是一直在变化的,但是在每次迭代中k的值是最新的,就相当于我把k=1,k=2.。这里解释一下关于实现:我在静态方法的参数里面需要传递的是step1,然后在这个接口里面存在一个step2的函数式接口,那么我在进行传递逻辑的时候也就需要把step2也需要进行规定,a->表示的是传递一个值为int a然后返回值是step2里面的返回值需要的类型int,然后在对step2进行实现,a->b->a+b就是利用的是函数的闭包(函数的无情->不可变性)

2025-10-09 21:07:29 331

原创 函数式编程

先介绍一下关于@FunctionalInterface这个注解的作用,这个就是在编译的时候去检查是不是在我的函数式接口的里面有且只有一个抽象方法,接下来说一下关于自定义的函数式接口的作用,这个可以用来实现多个对象,比如,注意里面是包装类型,然后就是泛型的使用,O代表的是返回值的类型,I代表的是参数的类型,这个字母自己去定义就行,这里只是举个例子。

2025-10-08 16:57:25 1216

原创 函数式编程第一章

这里补充一下关于接口式抽象类的实现方式的本质,就是我在使用多态的形式进行定义一个方法的时候我需要进行实现接口里面的抽象方法(在j8之后,接口里面也是允许存在方法体了,静态方法和默认方法,但是此时只是允许存在一个抽象方法),然后实现的本质就是我使用lambda的形式重写方法,后又new了一个实现类的对象,只不过我是使用多态的形式进行接收罢了。我的理解就是将函数作为一个规则传递给另一个方法,就是说我定义了一个函数式接口,然后我要去定义另一个方法,这时候我的业务很相似,需要和这个方法。

2025-10-07 21:51:53 955

原创 学习前端第3天

学习前端第三天,pink老师讲了关于图像的方面的内容,img是个单标签,然后里面存在几个属性,alt是在图片没有显示的时候显示的文字效果,然后就是height,width,这两个的话,不用同时去修改,只需要修改其中的一个就行,然后就是src标签,这个主要是写的是图片的路径,最后就是title,这个是鼠标悬停一段时间后显示的文字效果,这里面的属性都是key和value的形式,跟Java里卖弄的map集合差不多,然后的话又讲到了关于图片的一些格式,主要就是png,jpg,gif,webp,avif等的类型,这里

2025-10-07 16:33:48 215

原创 苍穹外卖第十二天

今天把苍穹外卖完结,好舒服,主要也就是关于导出数据的知识,首先需要引入两个关于POI的依赖,然后new一个XSSFWorkbook就行,然后今天又学到了关于Localdate的一个api叫做minusDays意思是向前推迟几天,嗯,知识点到这就没了。

2025-10-07 00:13:12 250

原创 苍穹外卖第十一天

下午休息,明天完结苍穹外卖,今天上午结束了苍穹外卖第11天的内容,主要就是基于echarts进行传递一些字符串的参数,说实话,很简单,这里面学到了一个工具类叫做StringUtils,在lang下面的包有个叫做join的方法,可以将集合转换成字符串,也可以设置每个元素的间隔符号,,然后的话还学到了等价的替换大于号可以替换成>小于号可以替换成<要是需要加上等号的话就在后面直接加上就行,然后就是关于localdatetime的of函数,这个主要是用来创建函数的,跟nowcbd,然后就是plus了,进行加减时间。

2025-10-06 11:55:19 140

原创 前端第二天

前端第二天,今天上午主要是学习了关于强调重要性的标签,主要就是strong进行加粗,ins,加上下划线,del加上删除线,em是倾斜,然后老师又讲了关于元素的分类,主要是块元素和内联元素,块元素独占一行,不能嵌套多个,比如我在p标签里面再次嵌套一个p标签的话,在浏览器里面显示的就是3对p标签,常见的p标签主要又div,p,h等,内联元素比如strong,del等。

2025-10-06 11:54:30 198

原创 前端第一天

今天开启前端课程,后端的话也是需要看的,我看的是pink老师的最新版的教程,我来给各位大佬汇报一下关于我学习的,首先就是关于html的初始化配置,主要是缩进,老师讲的是在vue里面一般是两个字节的缩进,然后就是格式化设置成true就行,接下来是关于html的一些介绍,lang后面跟着的是语言,默认是en,也可以设置成zn-CN,然后就是对于标签,首先双标签和单标签,一般都是双标签,这里面老师讲的是hr是一个下划线,是单标签,然后是关于标题,就是h1-6,还有就是写完之后在h的后面是不能够再加别的东西,他自己

2025-10-04 22:53:41 110

原创 苍穹外卖第十天

苍穹外卖第十天,今天主要是cv程序猿,但是也是学到了几个知识点,分别是springtask以及websocket,首先是springtask是任务处理器,首先是先要导入maven坐标,其实在springboot的起步依赖里面已经存在了,然后就是在启动类上面加上enabescheduling,然后就是创建任务对象,就是使用cron表达式,这个在网上搜索就行,有在线生成器,加上@scheduled注解就行,注意,需要交给ioc容器,接着是websocket,主要是客户端和管理端建立长连接,这个需要配置类,服务类

2025-10-04 19:20:18 124

原创 苍穹外卖第八天

今天开启了苍穹外卖第八天的·内容,主要就是实现两个功能,第一个就是关于用户提交订单的功能的实现,可以从一下几个方面去想,首先提交订单,那么最先要想到的是需要不同用户使用不同的购物车,到最后无论如何都是需要进行根据userid进行查找删除的,提交订单,需要提交的是两份数据,第一份就是order还有就是关于订单的细节,比如说我需要的菜品或者套餐的id,然后就是实现了,controller层也是往常一样,拦截调用service,impl层需要实现的是首先先检查一下我的输入的地址是否存在,然后校验一下我的购物车里面

2025-10-04 17:51:54 304

原创 苍穹外卖第七天

今天开启了苍穹外卖第七天的内容,上午主要是对于redis缓存菜品进行的操作,主要是对于用户在进行查看菜品的时候我先对redis进行操作,先查看redis里面有没有缓存的数据,如果有的话,我需要将redis里面的数据返回给前端,没有的话,我需要先去查找,然后加载到redis当中,但是这时候有一个新的问题就是对于redis一旦存入之后我在进行管理端进行操作的时候需要修改就需要清除缓存的数据,这时候需要进行清除,就是拿到key的值,但是对于要是修改一个菜品的话我可能需要清楚多个缓存,因为你不知道这个菜品还有没有其

2025-10-02 11:14:13 384

原创 苍穹外卖第六天

今天上午把苍穹外卖第六天的关于小程序的完成了,主要是关于小程序的,我呢大体上把小程序的前端课程过滤了一遍,但是没有实质性操作,我打算先把后端完结,然后转过头学前端,然后来讲一下内容,黑马的老师先讲了关于HttpClients的两种方式,一种是get,另一种是post,首先是get,这里就需要创建一个关于C端的对象,createdefault,然后调用get方法进行请求,拿到返回的结果,进行解析,先拿到getstatusline的那行,然后解析一下code,这个拿到的是关于服务器传递过来的状态码,然后用返回的

2025-10-01 11:58:57 305

原创 苍穹外卖第五天

dels keys后面可以加上一个或者是多个字段。

2025-09-30 11:04:27 335

原创 苍穹外卖第四天

今天下午呢,把第四天接口全部完成,美滋滋,主要是啥呢,就是关于套餐的,首先就是需要增加套餐,前端传递一些参数,使用requestbody封装一下,然后就是调用mapper接口进行增加,但是这里需要注意到的是要使去看一下菜品是否停售,并且需要遍历一下菜品然后设置一下相关的ID,接下来就是查询,这个不讲了,跟之前的查询一样,不过这里我分清了requestparam的作用,这个主要是对前端传递的参数进行封装,但是只能是前端传递一个ID然后我在接收参数里面写上一个ID,一一对应,然后就是对于查询回显,这个主要就是根

2025-09-29 16:22:51 210

原创 苍穹外卖第三天

今天嘛,今天把苍穹外卖第三天内容结束,但是老师留下的作业没有完成,明天把作业完成,然后复习一下MySQL和Javaweb,然后我来大致说说今天完成的任务,今天把菜品管理里面的分页查询,菜品增加,菜品查询回显,图片上传,菜品口味插入,菜品删除,菜品修改,菜品口味修改这些功能完成,总体上还是有点蒙,现在来大致梳理一下用到的知识点,先来说一下图片上传吧,这个在昨天其实已经完成了,但是图片路径一直错误,后来发现了,首先就是在ossutils里面其实已经将https写入,然后就是需要自己手动将访问的权限设置成,公共访

2025-09-28 11:40:03 131

原创 Mysql

这里面我先讲一下关于索引的语法,首先就是创建一个索引,create index 索引名称 on table 表的名称(字段),然后就是查询索引就是使用show index from 表名称,接下来就是使用原则,我先来将一下关于索引失效的一些东西,首先就是我在使用范围查询的时候尽量不要使用><这种东西,可以替换成>=和<=这些,不会让索引失效,然后就是你在条件搜索的时候不要进行数学运算,就是不要使用加减乘除啥的,也不要使用一些函数,然后就是你要根据最左前缀法则进行查询(前提是有索引),你需要将第一个创建的主

2025-09-28 11:39:21 309

空空如也

空空如也

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

TA关注的人

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