- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 高性能消息队列Disruptor
之后定义一个disruptor,初始化放在第一个方法上面,然后定义一个ringBuffer,和一个消息工厂类。之后定义一个新的class类来实现EventMessageDisruptor,并在里面进行实现消费者。之后需要定义一个异常处理类,如果发出的消息出现了异常使用这个异常处理类进行处理。第一给方法是独立的消费者也就是处理每一个消费者的所有信息。第三个方法是处理消费线程结束之前出现的异常。第二个方法是公告消费者,不会处理重复的信息。第二个方法是处理消费线程之前出现的异常。第一个方法是初始化的方法。
2025-02-01 22:39:00
315
原创 Springboot自动配置的原理
在@AutoConfigurationPackage里面是继承了@DeferredImportSelector而,@DeferredImportSelector又继承了@ImportSelector,它实现了selectImports的接口方法,这个方法是用于去获取所有符合条件的类名,这些类会加载到IOC容器里面。这个依赖配置主要是依靠三个注解实现的首先是@springbootApplication核心注解里面的注解,因为它里面有许多注解组合而成的。@Import:使用于导入配置类到当前文件上下文里面。
2025-01-22 22:06:24
245
原创 SpringBoot对于Spring的扩展
Configuration:用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。如果存在括号中的类,这个Bean就会加载,没有则不会进行加载,这个不仅可以作用在类上,还可以作用在方法上面进行使用。Springboot所提供的注解。
2025-01-22 20:38:11
526
原创 Spring 中的事件驱动模型
事件模式也就是观察者模式,当一个对象改变的时候,所有依赖的对象都会收到一个通知。Subject:抽象主题Observer:具体主题Concrete Subject:抽象观察者,在得到更新通知之后去更新自己。Concrete Observer:一个具体观察者,去实现抽象观察者的定义。
2025-01-21 19:55:18
431
原创 Spring的条件加载
添加加载是让我们根据需求来加载对于的Bean,并不是全部进行加载,是通过条件判断来进行加载。这个是条件加载需要使用到的注解,它是Spring里面的,这个注解可以标注在类、方法上面,通过Condition进行判断,来决定是否加载,这个value是一个数组,也就是可能有多个且都需要满足条件才行。这里看到它有两个参数,且都需要满足条件才会返回true。第一个参数ConditionContext是用来获取系统信息的。
2025-01-21 15:55:12
460
原创 分类操作,可以通过引入对 Bean 的前置和后置处理
BeanPostProcessor,它主要有两个方法before和after的执行阶段,主要就是明白方法是在谁的前面在谁的后面执行在你的idea中创建一个项目,你可以通过实现Ordered这个接口来,这样就可以让其实现类去实现这个接口下的int getOrder,会根据其返回值进行排序从小到大,返回值越小的越先被执行。
2025-01-20 22:51:16
345
原创 Spring的循环依赖
第一种是两个Bean相互依赖第二种是三个Bean相互依赖第三种是自己依赖了自己可以自己在开发工具中进行实践创建一个项目,在创建两个类将其设置为Bean,让它们两个相互依赖这样就是相互依赖了,但是这并不是说就是错误的这是一种field注入循环依赖,你的ioc容器可能会帮你解决掉,这个时候就需要我们自己告诉IOC容器进行解决。在你的yml文件进行配置除了上面这一种还可以通过构造器进行注入,这种就是构造器方式循环依赖,IOC容器不可以进行处理。
2025-01-20 22:00:19
287
原创 spring Ioc 容器的简介和Bean之间的关系
springIOC是spring的核心从上面的图可以看到,如果我们自己去管理对象之间的关系的话是非常麻烦的,而且还很容易出现问题,由此IOC容器出现了,它就是让代码去管理关系IOC将对象的创建依赖关系的管理和从应用程序代码中解耦出来依赖注入:它的话是在程序的运行过程中动态的去注入某个对象。
2025-01-20 15:35:36
780
原创 spring的事物管理的认知
它是一个原子操作要么全部不执行,要么全部执行成功,如果有一个失败也会撤销,它保证用户每一次的操作都是可靠的,即使时出现了错误也不至于破坏数据的完整性它包含了四种特性:原子性:保证事物要么全部执行,要么全部不执行。一致性:保证了数据的一致性。持久性:事物的操作的数据会存储到数据库中是永久保存的。隔离性:同样的事物操作相同的数据它们是相互隔离的。
2025-01-19 15:21:59
348
原创 Gateway网关搭建服务
Gateway是在spring生态系统之上构建的API网关服务,基于Spring5,SpringBoot2和Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等SpringCloud Gateway是SpringCloud的一个全新项目,基于Spring5.X+SpringBoot2.X和Project Reactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。
2025-01-08 16:04:37
668
原创 Nacos注册中心微服务注册
1、服务提供方在启动的时候,会向注册中心注册自己服务的详情信息(ip、端口号等)。在注册中心中会维护一张服务清单,保存这些注册信息,注册中心需要以心跳的方式去监测清单中的服务是否可用,如果不可用,需要在服务清单中剔除不可用的服务。2、服务消费方向服务注册中心咨询服务,并获取所有服务的实例清单,然后按照指定的负载均衡算法从服务清单中选择一个服务实例进行访问。
2025-01-08 11:49:33
1188
原创 Spring Task介绍和基本用法
Spring Task是Spring框架中的一个定时任务调度模块,它提供了一种简单的方式来实现基于时间的调度任务。使用Spring Task,可以通过Java代码配置或注解的方式定义定时任务,并设置任务的执行时间、间隔周期、触发条件等。当达到指定的时间或条件时,Spring Task会自动触发任务的执行,可以执行任何有意义的操作,例如数据备份、缓存清理、邮件发送等。Spring Task还具有以下特点:1、简单易用:简单的XML或注解配置即可实现定时任务调度。
2025-01-06 09:07:21
865
原创 Echarts的认识和基本用法
Echarts是一个基于JavaScript的开源可视化图表库,由百度前端开发团队研发和维护。它提供了丰富的图表类型、数据统计分析、动态数据更新、多维数据展示等功能,可以帮助开发人员在 Web 应用、大屏展示、移动端等各种场景下,快速构建出高度定制化的交互式可视化图表。Echarts支持多种图表类型,如等,还支持动态数据显示、图表联动、混搭图表等复杂功能。同时,ECharts还支持多种数据格式、数据预处理和自定义附加组件等扩展功能,让用户能够方便地实现各种需求和定制化要求。
2025-01-05 19:37:13
686
原创 security框架的安全登录
Spring Security: Spring家庭一员。是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用Spring IoCDI(控制反转DI依赖注入和AOP(面向切面编程功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
2025-01-05 14:36:30
790
原创 EasyExcel简介和读写操作
在类上添加关键注解@Data,@ AllArgsConstructor,@NoArgsConstructor,并且每一个属性上面都有着对应的注解和值,也就是写在@ExcelProperty里面的数据value是其表头,后面的index是代表处于第几列。在你的写方法里面创建一个list集合,并对其里面进行添加数据,之后选择你需要添加的文件的路径,并配置你之前创建得实体类,在sheet里面编写你添加数据的名称,在调用doWrite写入你添加的list集合。具体来说就是在你的Excel表格的上面添加你的属性。
2024-12-30 01:08:50
800
原创 Uniapp跨域请求
是指当一个请求的URL的协议、域名或端口与当前页面的URL不同时,该请求被视为跨域请求。跨域是一种安全策略,用于限制一个域的网页如何与另一个域的资源进行交互。就比如我们进行前端向后端进行发送请求的时候,如果是开发前后端分离的项目时,跨域发送请求是经常需要进行实现的,比如使用uniapp向前端发送请求发送获取信息的时候就需要进行跨域。
2024-12-29 20:03:51
756
原创 minio的认识以及安装和使用
MinIO是一个开源的分布式对象存储服务器,支持S3协议并且可以在多节点上实现数据的高可用和容错。它采用Go语言开发,拥有轻量级、高性能、易部署等特点,并且可以自由选择底层存储介质。它基于Apache License 开源协议,兼容Amazon S3云存储接口。适合存储非结构化数据,如图片,音频,视频,日志等。它主要有 高性能、安装部署简单、操作简单、性能优秀,读写速度快、支持云原生容器化部署、提供多语言SDK的支持等优点。
2024-12-25 08:59:10
2528
1
原创 yml或properties文件为什么没有效果
变成这个样子就是已经成功了,重新启动你的项目,如果还是有问题就查看你的yml文件或者properties文件看看是否是有什么编写错误的地方,如果是yml文件就需要注意因为这个yml是非常注重格式的,如果有报错就查看一下你的yml文件是否是因为格式的问题,如果是就把你的格式改变,改为符合它的格式。点击安装这个插件即可,这个过程有可能会需要重新启动一下你的idea,这个重启是没有关系的对你的正在编写的项目是没有影响的,安装好后查看你的yml文件或者properties文件,看看是否已经变了样式。
2024-12-22 13:31:02
345
原创 使用docker拉取镜像很慢或者总是超时的问题
这个也是可以使用的,是在上一个使用不了的情况使用,我在使用上面那个镜像源拉取redis时一直都是不成功的,使用流量也是一样的。像这种就是网络的原因,因为你是连接到了外网去进行下载的,这个时候可以添加你的访问镜像源。出现了问题,反正我当时是因为这个搞了一个下午查询了很多的文档才解决掉的,使用下面的。如何还是拉取不成功就开启你的个人热点进行连接,或者换一个更换的网络。这个可能是你操作docker过于频繁的原因,或者是你的。在拉取镜像的时候比如说mysql镜像,在拉取。
2024-12-20 15:43:03
806
原创 Java的Mvc整合Swagger的knife4框架
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。使用Swagger,就是把相关的信息存储在它定义的描述文件里面(yml或json格式),再通过维护这个描述 文件可以去更新接口文档,以及生成各端代码。而Springfox-swagger,则可以通过扫描代码去生成这个 描述文件,连描述文件都不需要再去维护了。所有的信息,都在代码里面了。代码即接口文档,接口文档即代码。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。
2024-12-09 15:26:22
878
原创 request发起网络请求三种回调方式和不同的参数详解
如果需要在程序中发送网络请求需要使用到uni.request,并且在其里面的url地址放入你需要发送网络请求的地址。使用success.res输出一下数据。创建好了之后调用一下方法。可以看的请求的网络就已经输出了传递的值了。如果需要将值打印在页面上可以使用数组来进行打印。先根据传递过来的值的属性名来进行取其对应的值。先创建一个数组来存放传递过来的值。页面展示的效果就是这个样子。也可以使用其他的方式比如说:then()方法或者将res定义成一个函数的模式。这两中方法的页面效果都是一致的。
2024-09-09 11:31:18
823
原创 uniapp设置微信小程序的交互反馈
需要设置一个点击文字即可转跳页面的时候可以需要在navigator里面在设置一个open-type并且给其值设置为reLaunch即可。如果需要设置提示的时候显示出来的图标是我们的自己设置的图标的话需要设置一个image并且给到其你所存放的图片地址。在弹窗出来的时候不可以点击其他操作的话需要设置一个mask:true这样在弹窗出来的时候就不可以在点击其他操作了。设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给其一个none。showToast是我们在加载的时候进入就会弹出的提示。
2024-09-08 18:51:54
770
原创 tabBar设置底部菜单以及选项iconfont图标
在官网里面可以了解到tabBar组件的一些知识和注意点:需要给页面设置一个底部导航的话可以在pages.json里面设置一个tabBar标签,在其里面设置pagePath和text属性。可以看的pagePath是跳转的地址,text是下面导航的文字提示。如果是微信小程序的话只有一个text是会报错的。多添加一个list还可以对于底部导航进行一些页面效果展示的修改属性,比如:对比修改之前的效果也可以将底部导航移动到顶部,需使用position属性,不过仅有微信小程序支持。
2024-09-07 23:32:51
640
原创 响应式单位rpx及搭配UI产品工具和@import导入css样式和scss变量与用法static目录以及pages.json页面路由globaStyle的属性和pages设置路径及窗口表现
我们可以去官网先了解一下我们的rpx用法和注意以及与px的区别。我平时使用的px是我们的屏幕像素的单位,我们在一个页面创建一个view组件,并且给其在style组件里面赋予css样式,让其宽高都在200px左右。保存好了之后在页面中进行运行,来查看我们的结果。切换到了另一个的展示效果的展示产生真中差异的是因为我们的px是固定的,并不会随着我们的页面变化而发生变化。我们可以使用设置百分比来解决。我们还有一个单位是与我们的%一样的效果效果是和我们的百分比一致的,可以自己去将我们的百分比改为vw尝试。
2024-09-06 22:19:22
2385
原创 onUnLoad页面卸载和onPageScroll监听页面滚动
我们使用navigator组件从一个页面跳转到其他页面的时候,会发现我们的页面上都会有一个箭头而我们点击那个箭头就可以返回到我们上一个页面。如果我们在跳转到另一个页面的时候,并不想要这上面的箭头时可以使用我们的open-type="reLaunch"属性来卸载我们的上一个页面,换就话来说就是清除我们上一个页面的缓存。我们可以使用onUnLoad来显示我们的页面是否被清理。
2024-09-05 17:11:33
445
原创 生命周期onLoad和onReady在vue3组合式api中的使用以及onShow和onHide在钩子中的对比和顺序
我们在使用我们的onLoad时,并不可以直接的使用我们的onLoad需要先导入我们的onLoad,因为我们没有导入我们的onload时而直接进行使用是会发生错误的,因为此时的onLoad是并没有在我们的生命周期里面的,所以直接使用会发生错误。因此我们在使用onLoad是需要导入我们的这个与我们的ref导入类似,我们导入完成之再次到我们的页面中进行查看。我们也可以在onLoad里面来修改我们的值由此可见我们的onLoad可以用来对我们的定义的变量或者常量的value进行修改,从而改变我们在页面显示的值。
2024-09-05 00:18:23
4290
原创 defineExpose暴露子组件属性及方法
这个可以帮助我们将我们的子组件里面定义的值传递出去,我们同时也需要在我们页面调用的子组件里面添加一个ref来接收,之后在我们的script里面使用我们的onMounted来输出我们的传递过来的值。我们看的控制台的count下面的value里面是我们从子组件里面传递过来的值,就说明我们从子组件里面传递的值已经成功的传递出来了。我们设置了一个点击的button的按钮来调用我们的修改值的方法,保存好了之后可以在我们页面中查看我们的效果。在我们传递过去的值后面添加一个冒号,在冒号后面添加我们要传递的值。
2024-09-04 09:59:22
323
原创 vue组件中的(钩子函数
我们在Vue的官方网站的左侧选项中可以找到我们的生命周期钩子的这个选项,点击进去可以看到我们的钩子函数的方法和其类型、用法及详细信息。在这里里面可以清楚的看到我们的关于钩子函数的方法以及用法和效果。
2024-09-03 23:45:42
831
原创 组件emit的声明触发事件
我们在页面中想要从页面传递数据给我们的子组件是可以使用我们的emit属性来作为我们传递的桥梁。保存好了之后在我们的主页面去调用我们的组件然后使用我们设置的传递值保存好了之后去页面查看我们的效果。当我们对按钮进行点击的时候会发现我们传递过去的值,已经在下面显示出来了。这个就是我们基础的父子通信,指的是我们点击子组件时会向我们的主页面传递值也就是通信,让我们子组件的值传递到我们的主页面来。
2024-09-03 20:08:09
595
原创 插槽Slots及组件高度定制化
我们在改变的时候只需要改变其中一个区域即可,其他的两个区域不需要改变,所以我们页面不相同的地方也只有会改变的区域。另一个页面可以设置不一样的值来展示对比我们的页面效果,可以发现我们只有中间的区域会改变而其他两个区域仍是保持不变顶。我们也可以设置v-for循环设置页面内容可以看的我们的页面内容已经改为了我们创建的循环里面的内容。我们可以在另一个页面来创建几个view组件并设置class类名来实现我们的显示块。
2024-09-02 17:24:03
826
原创 创建组件和在组件中通过Props进行数据传递
我们在一些软件或者页面的时候会发现我们跳转布局的时候,只有固定的区域发送了变化,我们的一些其他区域没有变化,这个是因为我们现在都是前后端分离的,不可以给每一个页面都创建出相同的功能栏,所以我们的页面和软件的布局就像官方文档里面的示例一样。我们可以新创建一个项目来了解我们的组件。如果说你有多个项目的话可以关闭你那些暂时不需要的项目,只需要右击显示我们的项目然后选中我们的额关闭项目即可。我们在新创建的项目里面创建一个名为components因为这个是官方给我们的存放组件的目录。
2024-09-02 00:16:55
799
原创 computed计算属性及方法对比和循环遍历统计以及watch和watchEect监听的用法
我们在下放创建了一个函数,将我们的总价值改为我们创建的函数,根据我们的是否被选中的属性,从而计算出我们的总价值,filter是根据我们依靠什么属性来作为依据,reduce是来定义我们的总价值,一个属性适总价另一个是这个被选中的对象里面我们所定义的price属性,这个依靠我们的遍历来实现的,将我们的所以内容遍历完成之后才会给出我们的总金额。添加了以上的代码后在我们的页面显示的地方使用checkbox-group包裹住,并且添加上@change给其赋予一个点击方法,我们吗可以从点击方法里面获取我们的值。
2024-09-01 00:14:05
783
原创 v-for循环为什么需要使用key和focus事件与blur事件的用法,以及我们的v-model双向绑定
我们先选择一张图片,然后给我们的输入框赋予一些值,同时加上我们的class并且在加上我们的:class这个是在我们是否点击了输入框时使用,当我们点击了输入框,则会出现一个新的class,点击其他地方时这个class又会消失,我们根据这个来做我们的图片展示和消失。因为这个还没有做我们的事件和定位所以是没有如何效果的,所以我们需要对其进行一些添加事件,比如@check点击事件和:key主键,并且需要给我们的item再次添加一个值也就是我们的引用,相当于我们的定位。
2024-08-29 23:36:38
929
原创 v-if与v-show的区别和v-for的列表渲染
对于我们的v-show是有一个缺点的,那就是它并不是像v-if那样将其去除,而是打上了一个隐藏属性隐藏起来了,这样是会占用我们的网络从而发生卡顿,可以打开我们刚才的页面右击检查,来查看我们那个没有显示的v-show与另一个没有显示的v-if来做对比。我们通过页面的展示效果可以清楚的看的我们v-if的true和false为我们的判断值的结果区别,判断值为false则显示我们的v-else,反之则不显示我们的v-else。如果说是我们编译的小程序的话就会比较严谨,它会要求我们加上key也就是主键。
2024-08-28 22:04:34
822
原创 原生监听事件和内置事件的处理以及穿件Vue3的自定义模板
首先找到我们的创建页面我们会发现只有系统默认提供的页面,那么我们一个如何创建一个模板页面呢首先创建一个默认的页面去除我们不需要的属性,在加上我们需要的属性后保存。再次点击我们的创建页面,会发现在下方有一个自定义模板的选项,点击来到我们的文件夹后,创建一个文本文件切记拓展名要改为 vue否则无法使用将我们之前的页面全部元素复制进入我们的新建模板页面中去。
2024-08-27 22:22:37
1145
原创 v-bind指令与class类和style的内联样式的绑定
当然我们如果这样的话就也只能调用一张图片,那么我们就需要用到我们之前定义的变量名并且还有定义另一个变量来保证我们图片下标位置的切换,然后在定时器里面将我们要轮播的图片的路径给到我们另一个变量,在上面调用的还是我们之前的变量名。这个时候我们发现我们的图片又正常的显示出来了,所以v-bind是可以让我们的变量在属性中起到作用的,当然我们的v-bind也可以缩写成 " : " 它们的效果是一致的。这个时候就需要用到我们的v-bind指令了,这个指令可以让我们的变量转换成这个属性所接受的。'类名':' ' "
2024-08-26 14:27:01
2505
原创 Vue的模板语法和插入表达式以及ref的响应和数据变量
可以明显看的我们两a的区别,没有使用{{}}的a就是单纯的a,而我们使用了{{}}括起来的a却是我们下面设置的变量内容也就是所我可以使用{{}} 来实现调用我们在下面script设置的变量,如果你没有效果的话或者说下面那个a显示的是空就是没有任何东西,应该是你没有给script设置setup属性。我们只有控制台会输出我们的改变的值,而页面却没有任何的改变,这个时候可以使用我们的ref,在使用之前需要定义我们的ref然后使用。我的ref使用不仅仅可以定义我们的数字也可以定义字符、数字、对象等等。
2024-08-25 19:47:12
541
原创 uni-app的超链接nvaigator组件和常用的表单组件
我们先创建出几个项目比如deom1和demo2至少得有两页面,否则跳转也是没有什么作用然后我们在其中一个页面加入一个view组件并输入段文字让后运行,现在点击你输入的文字是不会跳转的,因为还没有使用我们的跳转组件,在我们的view组件内新套入一个。还有其他的输入类型可以去uni-app官网查看来选择自己需要的类型不同的类型会有不同的效果,选择之前要好好的阅读一旁的说明。在我们去游览一些网页的时候,会发现在我们点击网页里的某张图片或者按钮时会跳转到另一个页面去,这个就是我们的超链接。
2024-08-24 11:37:29
1341
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人