自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java基础_语法(equals和==以及重写equals和hashcode)

目录1:==和equals1.1:==和equals的区别1.2:hashcode方法(C语言方法,返回地址指针值)1.3:equals方法2:重写equals和hashcode2.1:String类的equals和hashcode2.2:自定义类型测试(没有重写equals和hashcode)2.3:自定义类型测试(重写equals,不重写hashcode)2...

2019-04-01 14:06:45 2574 3

原创 vue基础(第四章 Pinia)

Pinia 是。专门为vue2和vue3设计,是Vuex 的替代方案。Vue 3 官方已推荐新项目直接使用 Pinia,不再主推 Vuex。👉 Pinia:把公共数据放到。

2026-08-11 22:15:10 207

原创 vue基础(第三章 路由)

SPA指的是一个web网站只加载单个HTML页面,所有组件的展示与切换都在唯一的一个页面内完成。它通过路由切换界面(或组件),以及网络请求数据,实现页面的局部刷新或整体更新,而无需重新加载整个页面。在前端开发 中,路由(Routing)是一个核心概念,尤其是在单页应用(SPA)中。,即当用户访问不同的URL时,前端应用会相应地展示不同的界面或组件,而。app组件向联系我们组件传递参数,这是app组件。联系我们组件向qq组件传递参数,这是联系我们组件。联系我们组件向微信组件穿参数,这是微信组件。

2026-08-11 16:59:39 209

原创 vue基础(第二章 指令 )

首先删除src下的所有文件,自己创建main.ts和App.vue。新建userCount.ts和userImg.ts,做到代码复用。首先我们知道了vue的项目结构。

2026-07-24 17:24:05 188

原创 vue基础(第一章)

前端构建工具,脚手架包管理器能让 JavaScript 脱离浏览器运行的运行环境。

2026-07-19 16:32:00 246

原创 前端技术_TypeScript(第一章)

1:微软开发的编程语言,是js的超集,是基于js的扩展语言。2:ts增加了静态类型检查、接口、范型等特性,适合开发大型项目,ts需要编译成js交给浏览器运行。在代码运行前,发现代码的错误和不合理给出提示,这样是不是就能显著的减少开发错误了。也就是在运行之前的错误前置。

2026-07-18 17:01:38 194

原创 任务调度——XXLJOB1(初步了解)

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。是大众点评的员工徐雪里在2015年发布的,已经在github开源,以前依赖quartz发布定任务,但是在v2.1版本移除了quartz。

2026-01-24 16:21:25 691

原创 任务调度——XXLJOB2(调度中心)

这里是截图初步认识,我们需要结合实际的项目才能真正的看明白。

2026-01-24 16:20:30 387

原创 任务调度——XXLJOB3(执行器)

因为本人使用的是jdk17、mysql8、springboot3.x 所以这里选择XXL-JOB3.X以上版本这是的调度中心只有一个,执行器也是只有一个仅仅只作为案例演示调度器中根据注册地址、定时规则、路由规则来指定的调用执行器。执行器中也就是我们的springboot项目根据源,单任务单线程一个jobId对应一个JobThread,由维护映射关系从根本上避免多线程并发执行同一任务触发请求去重存储logId,入队前校验防止调度中心重复推送同一触发请求队列串行消费存储触发请求,单线程while。

2026-01-24 16:16:17 796

原创 Mysql第八章:mysql进阶(各种锁)

行锁是innodb提供的一种锁,是对数据库的单独的行施加的锁,前提是能找到这一行或者多行,也就是能命中索引。行锁相对的表锁,全局锁,页锁的粒度更小,能更加精准的加锁,因此在处理高并发的时候,能支持更大的并发,减少锁的冲突。因为需要的粒度更小,在高并发的时候,需要对更多的行加锁,因此更加消耗资源。行锁分为共享锁、排它锁S锁的S来自单词Shared,这个单词的意思是“共享的”,因此S锁又叫【共享锁】--开启一个事务 id是主键 FOR SHARE 是共享锁。

2025-11-04 06:59:41 876

原创 单点登录1(SSO知识点)

跨站‌:顶级域名或二级域名不同(如 a.com 与 b.com),实际案例举例www.baidu.com和www.tencent.com 这两个网站分别是百度和腾讯,他们的根域名相同都是com。但是二级域名不同,一个是baidu,一个是tencent。这就是跨站跨域‌:协议、域名、端口任意不同。都是跨域,浏览器要求更严格例子1: http://a.com 与 https://a.com浏览器对此判断更严格‌,他们协议不同一个是http。一个是https。

2025-09-07 10:28:01 892

原创 JWT认证原理

JSON Web 令牌 (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间安全地将信息作为 JSON 对象传输。此信息是经过数字签名的,因此可以验证和信任。JWT 可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。1:我们知道算法的秘钥很重要(加密、解密必须使用同一个秘钥),如果秘钥不对、会报错2:或者时间过期了,都会解密报错3:算法还必须一样,否则也会报错。

2025-08-29 16:04:22 1001

原创 RocketMQ第五节(springboot整合MQ)

mq的架构我们使用springboot整合RocketMq,学习使用案例,在这里我们的项目架构是一个生产者、两个消费者。在以上的普通消息中,我们知道了生产者发送消息到主题的4个队列,消费者消费队列的消息。消息被消费者获取,并按照消费者本地的业务逻辑进行处理的过程。此时服务端(MQ服务器)会等待消费者完成消费并提交消费结果,如果一定时间后没有收到消费者的响应,Apache RocketMQ会对消息进行重试处理(推送)。消费重试 | RocketMQ2:消息提交消费者完成消费处理,并向服务端提交消费结果。

2025-06-30 22:09:40 1006 1

原创 并发基础7(守护线程)

在Java多线程编程中,有两种特殊类型的线程:后台线程和守护线程。本文将详细介绍后台线程和守护线程的概念、特性、用法,以及注意事项。你可以创建一个后台线程或守护线程来执行周期性的任务,例如定时清理临时文件、定时发送心跳包等。后台线程和守护线程的生命周期都取决于是否还有前台线程在运行。如果所有前台线程都结束了,那么后台线程和守护线程会自动退出。这些示例演示了如何使用后台线程执行垃圾回收和日志记录任务,同时确保这些线程不会阻止应用程序的正常退出。是后台线程,当主线程结束时,它会自动退出。

2025-06-27 22:16:10 437

原创 Redis学习_第五章(redis分布式锁)

为什么要设置随机值?主要是为了防止锁被其他客户端删除。有这么一种情况:客户端 A 获得了锁,还没有执行结束,但是锁超时自动释放了;客户端 B 此时过来,是可以获得锁的,加锁成功;此时,客户端 A 执行结束了,要去释放锁,如果不对比随机值,就会把客户端 B 的锁给释放了。

2025-06-27 17:49:16 1014

原创 并发基础6(springboot线程池)

本文系统介绍了Java多线程编程的核心技术与进阶应用。主要内容包括: 多线程实现方式对比 继承Thread类(无返回值) 实现Runnable接口(无返回值) Callable+FutureTask组合(有返回值) 线程池优化方案 FutureTask深度解析 异步任务执行与结果获取机制 实际应用场景案例(多任务结果聚合、超时控制、任务取消) 优缺点分析及局限性说明 CompletableFuture进阶 Java8引入的异步编程利器 支持链式调用、任务组合与异常处理 SpringBoot整合实践与典型用例

2025-06-24 11:33:12 1043

原创 java的stream流

stream流就像一种更高阶的迭代器,与传统的迭代器不一样,流不存储数据,只是代表了一个计算过程,在这个过程中对数据进行操作。1:我们先看一下迭代器的方法,Java 的集合框架(如 List、Set)均实现了 Iterator 接口,通过iterator() 方法返回迭代器。:流的操作不会改变原始数据集合,它们是无状态的。这就像是音乐家们的乐器,演奏结束后,乐器仍然是原始的状态,没有被改变。传统遍历元素:直接通过索引遍历集合(如数组),客户端需要知道集合的内部结构(如数组长度),不推荐在里边删除元素。

2025-06-21 09:28:30 1034

原创 SpringBoot_第十章(启动过程)

1:自定义初始化器ApplicationContextInitializer/*** 自定义初始化器在new springboot的加载初始化容器的过程中加载 根据反射加载 在项目启动中运行*/@OverrideSystem.out.println("我的ApplicationContext初始化器:");System.out.println("初始化器:"+beanDefinitionName);2:自定义监听器ApplicationListener/**

2025-04-18 00:02:08 845 1

原创 Java基础_虚拟机4:(JVM调优)

有两种方法1:-Xmn 直接设置年轻代的大小,总共容量默认10m,设置新生代4m/*** jvm的堆内存设置* -Xms10m 初始堆容量大小* -Xmx10m 堆容量最大值* -Xmn4m 直接设置新生代大小(优先级高于比例设置)* -XX:NewRatio=4 新生代:老年代=1:4 默认值是2也就是1:2* 1:-Xms10m -Xmx10m -XX:NewRatio=4 -XX:+PrintGCDetails (NewRatio设置新生代、老年代比例)

2025-03-28 16:16:07 878 1

原创 RocketMQ第六节(知识点总结)

半事务消息因系统重启或异常情况导致没有提交,生产者客户端会按照事务异常检查间隔时间进行回查,若超过半事务消息超时时长后没有返回结果,半事务消息将会被强制回滚。您可以通过监控该指标避免异常事务。也就是说超过4个小时消息,这条事务消息会回滚。

2025-01-15 12:34:44 1090

原创 java运算符

运算符是什么呢?其实这个问题很简单,运算符在我们的生活中很常见,失去了它,我们的数学基本报废了,像“+ , - ,* , /”都是我们最基本的运算符。即:对操作数进行操作时使用的符号,不同操作符的含义各不相同。

2024-11-25 20:59:16 816

原创 并发基础5(ThreadLacal)

而它的构成主要是用Entry来保存数据 ,而且还是继承的弱引用。详细内容要大家自己去跟。ThreadLocal的set()方法实际上就是往ThreadLocalMap设置值,key是ThreadLocal对象弱引用,值Value是传递进来的对象。2:set之后必须调用remove方法,因为ThreadLocal的ThreadLocalMap是Entity,实际上 ThreadLocalMap 中使用的 key 为 ThreadLocal 的弱引用,弱引用的特点是,

2024-11-21 21:16:41 502

原创 Docker学习(第二章节基础命令)

Dockerfile 是一个文本文件,主要作用是构建镜像,包含一系列用于构建镜像的指令(Instructions)。每条指令都会构建一层镜像,指令的内容描述了该层镜像应如何构建。dockerhub上已经有了image,为什么我们需要自己构建镜像呢?用户可以将自己的应用打包成镜像,从而让应用在容器中运行。还可以对官方镜像进行扩展,打包成适合生产环境的应用镜像。构建三步骤编写Dockerfile文件docker run2.2:命令构建镜像。

2024-11-13 00:15:54 1083 1

原创 Docker学习(第一章节基础命令)

传统:按照帮助文档,逐步部署项目Docker:打包镜像发布测试,一键运行将项目打包成镜像,扩展到不同的服务器使用docker,我们的开发测试环境高度一致。

2024-11-09 21:11:46 1224

原创 SpringCloud第七章(链路追踪Micrometer+Zipkin) -2024

组件多,并且一般多是多节点集群方式部署,用户的请求量还大,想要排查一个请求的错误,无异于大海捞针,因此啊,我们就需要一种技术来帮助我们将请求给串起来,这样在出现问题之后就可以拔出萝卜带出泥的定位到没有节点的请求日志,从而轻而易举的定位到问题所在,做到有则时的改之。肯定需要定位这个请求,需要一个全局的id,在A->B->C->D的日志中,都能追踪的到这一条请求。我们可以先想一下在微服务中,一个请求从A调用B,B调用C,C调用D,然后逐次返回,怎么实现链路跟踪?1:在80、91、92中都导入依赖的jar。

2024-09-27 19:38:55 1467

原创 SpringCloud第六章(服务保护CircuitBreaker) -2024

CircuitBreaker是断路器的意思,由于原来的SpringCoud的hystrix停更,所以springcloud社区推出了的新断路器,用来进行springcloud的服务降级、限流、熔断由于Spring Cloud断路器(CircuitBreaker)提供了不同断路器实现的抽象,支持的实现有两种Resilience4J和Spring Retry的实现。在Spring Cloud CircuitBreaker中实现的API位于Spring Cloud Commons中。这些API的使用文档位于。

2024-09-27 01:51:32 1459

原创 SpringBoot_第十一章(Thymeleaf模板引擎)

在项目中,我们使用前后端分离或者前后端不分离的技术,如果不分离就需要引擎模板引擎模板跟JSP相似,都是后端的模板解析器,将数据填充到模板页面,返回给前端的技术。Thymeleaf是一个现代的服务器端Java模板引擎的web和独立的环境,能够处理HTML, XML, JavaScript, CSS,甚至纯文本。

2024-08-03 23:38:07 611 1

原创 SpringBoot_第十章(日志)

想要做到日志自定义外部输出,可以使logBack,Log4J等,就需要配置外部文件。

2024-08-02 21:37:22 725 1

原创 ElasticSearch第四章(数据同步和集群)

因为ES中的是数据来自业务数据也就是数据库,比如mysql等,那么就需要把数据库的数据同步到ES中,那么什么时候进行数据同步呢?在ES中存在单机处理上限,以及单机的稳定性,所以集群的搭建是必不可少的。假如我们搭建三台服务器作为集群9200,9201,9202。2:都具有数据节点的功能:数据局存储、搜索、聚合、crud。3:都是ingest,具有数据存储预处理功能。

2024-03-27 00:17:02 2364

原创 ElasticSearch第三章(聚合)

在之前都是使用ES的查询,结合各种查询条件来查询出结果集,聚合即使查询的结果接在学习聚合之前我们先来了解两个名字1:桶(Buckets):满足于特定条件的结果集,相当于mysql的group by2:指标(Metrics):对桶内的文档进行统计计算,相当于mysq的max()、min()、avg()函数。

2024-03-23 19:33:14 1212

原创 ElasticSearch第二章(ES8.X的使用)

这里的索引库就是相当于mysql的表创建es01 就是相当于mysql数据库中的表,mapping:就是对表中字段的映射,properties:就是包含各个字段,type:设置字段类型,包含字符类型、数字类型、布尔类型等analyzer:设置字段的分词,创建倒排索引,便于搜索,只是用text类型文档就是数据,对比mysql的话,就是表中添加数据,但是这里添加的数据是json。

2024-03-17 18:58:27 2999 1

原创 ElasticSearch第一章(ES8.X安装、kibana安装、IK安装)

1:什么是ElasticSearch2:为什么要使用ElasticSearch

2024-02-21 14:30:38 1425

原创 SpringBoot_第九章(CAP和分布式事务)

我们知道在单机下边的事务通过注解开启事务。但是在分布式的系统中,比如扣减订单和减库存客户在主业务中,发起了下单和减库存两个服务,这两个服务在不同的服务器上,我们该怎么保证事务的一致性呢?正常情况下,下单和扣减库存都成功,两边保证了数据的一致性。但是不正常情况下的,比如下单模块失败或者是超时。导致了库存扣减成功后,下单失败。两边就有了一致性问题,出现了数据不一致。我们无法通过单机的事务来控制。于是就有了分布式事务的问题。

2023-11-29 23:46:19 1496

原创 SpringBoot_第八章(读写分离_ShardingSphere实现)

Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。可以实现读写分离和分库分表Apache ShardingSphere 由ShardingSphere-JDBC 和 ShardingSphere-Proxy这 2 款既能够独立部署,又支持混合部署配合使用的产品组成。它们均提供标准化的基于数据库作为存储节点的增量功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景,

2023-11-29 23:45:17 2284 2

原创 SpringBoot_第七章(读写分离_MybatisPlus和自定义路由实现)

dynamic-datasource的jar包的官方文档。controller代码根据请求不同访问不同的数据源。2:配置spring的主从。

2023-11-01 20:28:08 767

原创 SpringBoot_第六章(知识点总结)

Filter、servlet是Servlet规范,拦截的是自定义的请求。因为DispatcherServlet拦截的是/但是Filter、servlet可以自定义拦截请求,根据匹配规则,他们会自己处理请求。/*** 继承Filter* 不会经过拦截器* 拦截/*所有请求 不管get post* 使用次注解生效*/@OverrideSystem.out.println("执行MyFilter无论什么get、post方法:"+name);//调用链Servlet代码实现:/**

2023-09-06 18:56:54 459 1

原创 MyBatis学习——第六篇(mybatisPlus)

mybatisPlus是一个mybatis的增强工具,。目的是为了简化开发代码,提高效率而生的。

2023-08-10 18:06:58 419

原创 RocketMQ第四节(部署模式、监控面板等)

mq的消息在服务器存放多久:保存3天ocketMQ无法避免消息重复(Exactly-Once)所以如果业务对消费重复非常敏感,务必要在业务层面进行去重处理。可以借助关系数据库进行去重。首先需要确定消息的唯一键,可以是msgId,也可以是消息内容中的唯一标识字段,例如订单Id等。在消费之前判断唯一键是否在关系数据库中存在。如果不存在则插入,并消费,否则跳过。

2023-07-18 19:52:56 912

原创 java基础浮点类型

我们在现实生活中经常用到10进制的数据,比如整数和小数。但是小数经常出现小数点后无限循环的情况。比如圆周率的π和1/3。这些数字想要存入计算机中。我们只能使用double和float来存储。但是计算机的内存不是无限的。我们不可能真正的存储下这些数字。float:单精度,占用4个字节的内存空间,也就是4*8=32位二进制。double:双精度,占用8个字节的内存空间,也就是8*8=64位的二进制。

2023-07-16 12:40:30 4220

原创 RocketMQ第三节(生产者和消费者)

根据消息的key将消息轮训的插入队列中,队列的消息能保证FIFO,但是我们并不知道实际具体那条消息在那个队列,无法保证比如订单号是01的所有操作在同一个队列。所有才有了顺序发送,我们传入指定的订单号,只要订单号一直,就一定会存到相同的队列。我们知道,我们发送的消息,存储到了mq的topic的队列里边,默认的topic是4个队列。第一种(推送模式):订阅mq服务的topic,mq收到消息把消息推送给消费者,适用范围广。第二种(拉取模式):订阅mq服务的topic,mq收到消息,消费者定时去mq拉取消息。

2023-05-04 18:16:17 4098

页面管理.zip

定时任务可视化定时任务可视化

2019-10-23

空空如也

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

TA关注的人

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