自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring中都用到了哪些设计模式

示例:JdbcTemplate和HibernateTemplate:这两个类分别封装了不同的数据库访问实现,提供了相同的接口。所有的Bean默认只有一个实例,Spring容器负责创建和维护该实例。它通过引入一个桥接接口,将抽象类和具体实现类解耦,从而提高系统的灵活性和可扩展性。:将一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作。Spring通过桥接模式实现了将抽象和实现解耦,特别是在数据库、事务管理和持久化方面。将不同的控制器方法适配为统一的接口。

2025-03-31 19:05:47 483

原创 RabbitMQ消息队列面试题集合

死信"消息会被RabbitMQ进行特殊处理,如果配置了死信队列信息,那么该消息将会被丢进死信队列中,如果没有配置,则该消息将会被丢弃为每个需要使用死信的业务队列配置一个死信交换机,这里同一个项目的死信交换机可以共用一个,然后为每个业务队列分配一个单独的路由key,死信队列只不过是绑定在死信交换机上的队列,死信交换机也不是什么特殊的交换机,只不过是用来接受死信的交换机,所以可以为任何类型【Direct、Fanout、Topic】幂等性:一个数据或者一个请求,重复来多次,确保对应的数据是不会改变的。

2025-03-31 19:04:34 953

原创 redis常见面试题

redis常见面试题。Redis的事务并非严格的ACID事务,可能存在部分成功的情况。在数据库一条记录发生变更时就会生成一条binlog日志,我们可以订阅这种消息,拿到具体的数据,然后根据日志消息更新缓存,订阅日志目前比较流行的就是阿里开源的canal。这样一来,快照不用很频繁地执行,AOF 日志也只用记录两次快照间的操作,因此,就不会出现文件过大的情况了,也可以避免重写开销。订阅数据库变更日志,当数据库发生变更时,我们可以拿到具体操作的数据,然后再去根据具体的数据,去删除对应的缓存。

2025-03-28 15:34:53 1671

原创 XXL-JOB定时任务

XXL-JOB定时任务使用方法。一分钟上手动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效调度中心 HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心 HA。总的来说,调度中心是用来控制定时任务的触发逻辑,而执行器是具体执行任务的,这是一种任务和触发逻辑分离的设计思想,这种方式的好处就是使任务更加灵活,可以随时被调用,还可以被不同的调度规则触发。调度中心是一个单独的Web服务,主要是用来触发定时任务的执行。

2025-03-22 14:32:23 977

原创 skywalking微服务链路追踪

skywalking微服务链路追踪。就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等。是 Twitter 开源的调用链分析工具,目前基于 SpringCloud Sleuth 得到了广泛的使用,特点是轻量,使用部署简单。是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。UI服务:对应的启动脚本webappService.bat,Linux下对应的后缀是sh。

2025-03-19 17:20:18 1304

原创 若依前端框架增删改查

是 JavaScript 中 Promise 对象的方法,用于处理异步操作完成后的结果。当 listStaff 请求完成后,返回的 response 对象将作为参数传递给 .then() 的回调函数。是 Vue.js 中的一个特殊绑定语法,它结合了 Vue 的。属性指定插入操作后,自动生成的主键值会被设置到哪个属性中。这个列表是用来存后端返回来的数据的,一共在三个地方有。点击表单的取消按钮,重置这里面的东西。点击表单的取消按钮,重置这里面的东西。查询参数要改成对应的搜索框的参数。类型的对象作为参数。

2025-03-18 14:49:24 1087

原创 MQTT协议

是基于二进制消息的发布/订阅编程模式的消息协议,最早由IBM提出,为计算能力有限且工作在低带宽、不可靠网络的传感器或控制设备而设计。

2025-02-28 14:08:40 875

原创 RabbitMQ消息队列

因为RabbitMQ服务器是用Erlang语言编写的, 所以,你需要去查看rabbitMq适应Erlang的版本,因为不同的rabbitMq版本对应不同的Erlang版本。消费者从队列中获取消息后,服务器会将该消息标记为不可用状态,等待消费者的反馈,如果消费者。注意:消息发送到没有队列绑定的交换机时,消息将丢失,因为,交换机没有存储消息的能力,消息。到了交换机,每个队列都绑定到交换机,生产者发送的消息,经过交换机,到达队列,我们会发现一个消费者接受的都是奇数,另一个消费者接受的都是偶数,

2025-02-28 14:06:55 1056

原创 Seata 分布式事务搭建

我们需要seata-server,seata里面有文件是我们要用到的file:(默认)单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高(默认)db:(5.7+)高可用模式,全局事务会话信息通过db共享,相应性能差些redis: Seata-Server 1.3及以上版本支持,性能较高,存在事务信息丢失风险,请提前配置适合当前场景的redis持久化配置。

2025-02-27 19:46:40 251

原创 微服务组件详解——sentinel

blockHandler 函数访问范围需要是 public,返回类型需要与原方法相匹配,参数类型需要 和原方法相匹配并且最后加一个额外的参数,类型为 BlockException。若希望使用其他类的函数,则可以指定 blockHandlerClass 为对应的 类的 Class 对象,注意对应的函数必需为 static 函数,否则无法解析。是 Sentinel 提供的另一种流量控制策略,用于限制并发请求的数量,并确保在系统负载较高时不会直接拒绝请求,而是让请求在队列中等待,直到系统能够处理它们。

2025-02-27 19:42:53 1344

原创 微服务组件详解——gateway网关

微服务组件详解——gateway网关。网关是微服务项目的唯一入口反向代理:直接访问网关,网关来决定访问哪个微服务项目鉴权:访问网关的时候可以加上token,用来鉴权流量控制 :这个后来都用sentenal做熔断日志监控在启动类添加如下代码, KeyResolver 用于计算某一个类型的限流的KEY也就是说,可以通过KeyResolver 来指定限流的Key。//定义一个KeyResolver@Bean@Overridereturn。

2025-02-26 10:07:53 945

原创 微服务组件详解——openfeign

微服务组件详解——openf添加@FeignClient(value = "nacos-provider8860", path = "/bill")注解,value是注册中心的服务名。SpringCloud 从 2020.0.1 版本开始,移除了 Ribbon 组件,使⽤Spring Cloud LoadBalancer 组件来代。当我关掉provider时,或者provider出故障时,这样就会出现降级处理。provider出问题了,我们就需要降级,来一个其他的提示方法,防止报错。替 Ribbon 实现。

2025-02-26 10:06:52 547

原创 微服务组件——nacos详解

这里使用的nacos是2021的比较新,之前的maven镜像设置成阿里巴巴的会下载不了,因为阿里巴巴镜像上没有这个。解决办法:注释掉settings.xml上的阿里巴巴镜像源,就会自动使用maven默认的源,那上面有这个包。在mysql中创建数据库nacos,并在nacos的conf目录下找到nacos-mysql.sql文件导入数据库。Nacos集群默认最小要有三个节点,而且三个节点的配置中心的数据都需要存储在MySQL数据库中。1.如果用本地的ip+端口号,会生成一个虚拟机ip+端口号,删除也删不掉。

2025-02-13 15:59:15 1296

原创 微服务组件LoadBalancer负载均衡

微服务组件LoadBalancer负载均衡。SpringCloud 从 2020.0.1 版本开始,移除了 Ribbon 组件,使⽤Spring Cloud LoadBalancer 组件来代替 Ribbon 实现。

2025-02-08 16:19:13 586

原创 redis解决高并发抢购

对于前后端不分离的程序可以用悲观锁,对于前后端分离的程序可以用redis分布式锁,将key设置为value,当键不存在时,才能成功,若键存在,什么也不做,成功返回1,失败返回0。SETNX实际上就是SET IF NOT Exists的缩写图中当redis分布式锁为1的时候就锁起来,其他线程在外面隔几秒休眠,当起来的时候发现锁为0然后进入项目再上锁,就这样循环。

2025-01-03 16:17:39 444

原创 阿里云OSS从入门到开发(一万五千字保姆教程)

阿里云OSS使用超详细教程。Java制作项目的过程中想实现文件上传功能,使用传统的上传文件存储到本地磁盘会存在许多弊端,并且极其不方便等问题。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频 等在内的各种非结构化数据文件。1、创建一个或者多个存储空间,向每个存储空间中添加一个或多个文件。2、通过获取已上传文件的地址进行文件的分享和下载。3、通过修改存储空间或文件的属性或元信息来设置相应的访问权限。4、在阿里云管理控制台执行基本和高级OSS任务。

2024-12-31 11:58:25 1043

原创 uniapp基本组件介绍(附有代码实例)

uniapp基本组件介绍(附有代码实例)。默认情况下,UniApp 创建的项目使用的是 Vue 2。但如果需要使用 Vue 3,可以通过选择适合 Vue 3 的项目模板或通过手动配置来实现。

2024-12-31 11:51:19 1240

原创 mybatis缓存+三种springboot缓存步骤

mybatis缓存+三种springboot缓存步骤.这里的value是application.yml中的cache-names。解释:用ehcache的注解往redis里面存。在application.yml中添加缓存配置。开启配置注解可以不在启动类中,在这里面开启注解。先在mybatis-config.xml加入。只要使用缓存注解,都要在启动类里面加上这个。前面的是名字是自己取的名字,#后面的是时间。在mapper.xml中开启二缓存。只缓存查询,缓存增删改没有意义。这里面的myCache是文件夹。

2024-12-24 10:13:50 744

原创 Nginx代理步骤(含资源)

Nginx代理步骤(含资源)

2024-12-19 09:21:45 384

原创 Redis哨兵模式和主从模式集群(图文详解)

哨兵的作用就是对Redis的系统的运行情况的监控,它是一个独立进程。它的功能有2个:1、 监控主数据库和从数据库是否运行正常;2、 主数据出现故障后自动将从数据库转化为主数据库;

2024-12-17 17:12:22 897

原创 达梦数据库基本概念和常见sql

一个用户(User)创建的所有表、视图、存储过程等,都属于这个用户的模式。每个用户都有一个独立的模式,它是用户存放自己数据和对象的“文件夹”。它就像一个文件夹,里面用来存储数据库的各种数据(比如表的数据、索引、日志等)。数据库里的表和索引都是按表空间来分配存储位置的。一个用户可以创建自己的数据(比如表、视图等),也可以通过分配的权限访问别人创建的数据。能,对指定的主体或客体启⽤/禁⽤指定类型的审计,查询和管理审计结果,以及管理审。象,如⽤户、⻆⾊、表、视图、存储过程等的创建、修改和删除。

2024-11-28 16:29:57 663

原创 Spring框架(万字详细解析)

Spring知识点(万字详细解析)。Spring中两大核心技术,(控制反转/依赖注入),(面向切面编程)daoserviceservletMybatisSpringSpringMVCSpring是。

2024-11-28 16:26:08 1407

原创 Mybatis框架(含步骤)

resultMap :对外部resultMap的引用应用场景:数据库字段信息与对象属性不一致复杂的联合查询,自由控制映射结果二者不能同时存在,本质上都是Map数据结构。占位符,它有预编译的过程,定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"属性association映射到JavaBean的某个“复杂类型”属性,比如JavaBean类。MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单。

2024-11-21 14:07:16 1034

原创 Xftp连接不上虚拟机怎么办(ubuntu版)

Xftp连接不上虚拟机怎么办(ubuntu版)。因为换不了源就没办法下载粘贴复制,从文档内换源还得手敲,所以我选择从界面换源。选择这个ustc的源。

2024-11-13 22:15:15 668

原创 设计模式(主要的五种)

设计模式

2024-11-08 16:07:41 1258

原创 三层架构和MVC以及它们的融合

三层架构和MVC

2024-11-08 16:06:01 1119

原创 EL表达式和JSTL表达式(详解)

3. varStatus 属性:可选属性,用于指定一个变量名,该变量将保存当前迭代的状态信息,包括索引、计数等。它可以用于各种类型的值,包括字符串、集合、数组和对象等。可以是 List、Set、Map、数组等。2. var 属性: 必须属性,用于指定一个变量名,该变量将在每次迭代中保存当前元素的值。4. begin 属性:可选属性,用于指定开始迭代的索引位置,默认为 0。6. step 属性:可选属性,用于指定每次迭代的步长,默认为 1。5. end 属性:可选属性,用于指定结束迭代的索引位置(包含)。

2024-11-08 16:00:46 1131

原创 SQL知识点五——存储过程和事务(超详细)

存储过程和事务。T1 在事务中两次读取某个范围的数据,而在两次读取之间,T2 对该范围的数据进行了。:表示调用者向过程传入值(传入值可以是字面量或变量),进入函数的时候不可改变,可以在内部改变。为了避免上面的各种并发问题,用隔离并发运行各个事务,使他们相互不受影响。同时运行的多个事务,如果没采用必要的隔离机制,就会发生以下各种问题。(可以避免脏读,但不可重复读和幻读的问题仍然可能出现),这些数据行在第一次读取时并不存在。对于两个事务T1,T2,T1读取了一个字段,然后T2。

2024-10-28 20:49:59 1094

原创 使用uniapp制作微信小程序(页面)——校园小卖铺

使用uniapp制作微信小程序(页面)——校园小卖铺。附有配置和代码。

2024-10-25 10:45:19 1321

原创 MySQL事务和存储过程

MySQL事务和存储过程。T1 在事务中两次读取某个范围的数据,而在两次读取之间,T2 对该范围的数据进行了。,在这个事务持续期间,禁止其他事务对这个字段进行更新(update)。事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行。为了避免上面的各种并发问题,用隔离并发运行各个事务,使他们相互不受影响。同时运行的多个事务,如果没采用必要的隔离机制,就会发生以下各种问题。对于两个事务T1,T2,T1读取了一个字段

2024-10-23 14:34:06 1276

原创 JavaScript操作DOM对象

JavaScript操作DOM对象。方法说明getAttribute("属性名")根据元素名获得元素属性值setAttribute("属性名","属性值")设置元素某个属性的值className操作元素的class属性()innerHTML操作元素内容li.innerHTML = "孙悟空";innerText操作元素文本内容li.innerText= "孙悟空";操作css,只能操作行内样式value操作表单元素值。

2024-10-11 16:37:29 1350

原创 JavaScript操作BOM对象

JavaScript操作BOM对象。prompt:输入对话框、两个参数,用来提示用户输入一些信息,点取消返回null,点确认返回用户输入的值。Date.now 方法返回当前时间距离时间零点(1970年1月1日 00:00:00。history.forword() = history.go(1) 浏览器中的前进。history.back() = history.go(-1) 浏览器中的后退。返回Date对象的一个月中的每一天,其值介于1-31之间。加载history对象列表的前一个URL。

2024-10-08 21:09:24 1184

原创 JDK8新增特性(值得收藏)

JDK8新增特性(值得收藏)。Lambda表达式、方法引用。直接用Lambda表达式省略了在创建的那个类。“->”,Lambda操作符或箭 头操作符,它将Lambda表达式分割为两部分。左边:指Lambda表达式的所有参数右边:指Lambda 体,即表示Lambda表达式需要执行的功能现在连return和{}都不要了本来是应该这样子使用循环的使用Lambda表达式的循环这里的s就代表add的括号里面的参数这里的k就代表第一个参数,v就代表第二个参数

2024-09-25 17:35:05 770

原创 JavaScript操作BOM对象

JavaScript操作BOM对象。prompt:输入对话框、两个参数,用来提示用户输入一些信息,点取消返回null,点确认返回用户输入的值。history.forword() = history.go(1) 浏览器中的前进。history.back() = history.go(-1) 浏览器中的后退。confirm:确认对话框,点击确定返回true,点击取消返回false。返回Date对象的一个月中的每一天,其值介于1-31之间。返回Date对象的星期中的每一天,其值介于0-6之间。

2024-09-22 16:00:00 1008

原创 哈希表详解

哈希表概念。hash不可逆。

2024-09-21 17:39:13 452

原创 XML:DOM4j解析XML

XML和DOM4j解析XML。XML 是独立于软件和硬件的信息传输工具。XML 的设计宗旨是传输数据,而不是显示数据。XML 标签没有被预定义。您需要自行定义标签。XML不会做任何事情,XML被设计用来结构化、存储以及传输信息。

2024-09-20 16:21:21 1830

原创 JVM内存结构

JVM内存结构。JVM虚拟机拿到内存后对内存进行割分栈、局部方法栈和程序计数器是堆、方法区是主要用于存储方法的因为是公有的(),所有线程都可以访问它,因此它需要有效的垃圾回收机制来管理内存的分配和释放。也就是。用来(等其它语言),就相当于存档存放静态变量,类加载器等全局的信息(数据全局共享)

2024-09-20 10:34:39 698

原创 网络编程:掌握TCP Socket和UDP Socket

网络编程:掌握TCP Socket和UDP Socket

2024-09-19 15:13:19 1493

原创 Java超详细知识点——I/O流(字节流和字符流)

Java超详细知识点——I/O流(字节流和字符流)。InputStream被看成一个输入管道,OutputStream被看成一个输出管道,数据通过InputStream从源设备输入到程序,通过OutputStream从程序输出到目标设备,从而实现数据的传输。由此可见,I/O流中的输入/输出都是相对于程序而言的。

2024-09-10 15:52:12 1518

原创 Java File类与字节输入输出流详解

Java File类与字节输入输出流详解。InputStream被看成一个输入管道,OutputStream被看成一个输出管道,数据通过InputStream从源设备输入到程序,通过OutputStream从程序输出到目标设备,从而实现数据的传输。由此可见,I/O流中的输入/输出都是相对于程序而言的。

2024-09-09 16:19:53 1372

java基础知识点思维导图

详细的说明了java基础的各种知识点,该资源是一个专为Java初学者或需要复习Java基础知识的开发者设计的思维导图。它涵盖了Java编程语言的核心概念和基础知识点,是理解和学习Java编程不可或缺的工具。适用人群:Java初学者:帮助他们快速掌握Java的基础知识,有经验的开发者:作为复习和回顾Java基础知识的工具。该资源结构清晰,以树状结构展示知识点,帮助学习者建立系统的知识框架。

2024-08-13

空空如也

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

TA关注的人

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