自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【RabbitMQ】RabbitMQ核心机制

最终需要得到一个类对象,而这需要内存来存放,因此需要分配内存空间,根据刚才读取到的内容,确定出类对象需要的内存空间,申请这样的内存空间,并且把内存空间中所有的内容,都初始化为0。魔幻数字,计算机圈子中约定俗成的做法,二进制文件中,会在开头的若干个字节,设置一个固定的常熟进去,通过这个常数,标识当前这个文件是什么样的文件。防止用户自己写的类,把标准库的类给覆盖掉,保证标准库的类,被加载的类优先级是最高的,扩展库其次,第三方库的优先级最低。谈到地址就是“内存”的地址,而文件(硬盘)中没有地址的概念。

2025-09-23 14:10:07 3595

原创 【Redis】核心机制

具体来说,Redis中实现事务,是引入了“队列”(每个客户端都有一个),开启事务时,此时客户端输入的命令会发给服务器,并进入这个队列中(而不是立即执行),当遇到了“执行事务”命令时,此时会把队列中的这些任务按照。Redis给内存中当前存储的数据拍个照片,生成一个文件,存储在硬盘中,后续Redis一旦重启了(内存中数据就没了),就可以根据刚才的快照,把内存中的数据恢复回来。执行save时,Redis会全力以赴的进行“快照生成”的操作,此时就会阻塞Redis的其他客户端的命令,可能导致严重发后果,

2025-09-23 14:08:28 495

原创 【Spring生态】Spring AOP与事务

Order 中的值越小,执行的优先级越高。" * " 表示匹配任意字符,只匹配一个元素," .. " 表示匹配多个连续的任意符号,可以通配任意层级的包,或者任意类型,任意个数的参数。程序运行前,代理类的.class 文件就已经存在,在编译时就已经确定了代理和被代理的关系,需要为每个被代理的类编写一个代理类。@Around 环绕通知方法的返回值, 必须指定为Object, 来接收原始方法的返回值, 否则原始方法执。不修改原始的业务方法, 就可以对原始的业务方法进行功能的增强或者是功能的改变。

2025-09-22 13:50:49 1055

原创 【编程基础】JVM

换句话说,老师(JVM)手中有一个所有学生(对象)的总名单,针对当前教室(内存空间)内的学生(对象)进行点名操作,被点到的回答到(可以被访问),没有回答到的,就是缺课(不可被访问,垃圾)综上所述,可以给每个对象分配一个计数器,衡量有多少个引用指向,每次增加一个引用,计数器+1,每次减少一个引用,计数器-1,当计数器减为0,此时对象就是垃圾了。在JVM中,专门搞了一波线程,周期性地扫描代码中所有的对象,来去判定某个对象是否是“可达”(可以被访问到)的,与之对应,不可达的对象就是。

2025-09-21 12:32:26 622

原创 【Docker】网络

Linux 网桥, 网桥上的容器可以相互通信, 也可以通过 bridge 驱动程序配置,实现对外部容器的访问。叠加网络, 在一个大网络下组织起来的小型网络, 可以精准地划分一个子类的局域网。容器的网络默认与宿主机及其他容器都相互隔离, 但同时也要考虑下面的一些。容器需要更高的定制化网络(如定制特殊的集群网络、定制容器间的局域网)应。上述的这些问题都需要对容器的网络进行合理的管理才能解决,这就体现出了容。容器不想让它的网络与宿主机、与其他容器隔离应该如何实现。一旦连接,容器可以与同一网络中的其他容器通信。

2025-09-19 18:55:39 429

原创 【Spring生态】Spring事务

嵌套事务的回滚不影响事务A,但事务A的回滚会影响事务B。如果事务一部分执行成功, REQUIRED加入事务会导致整个事务全部回滚. NESTED嵌套事务可以实现局部回滚, 不会影响上⼀个方法中执行的结果.无需手动开启事务和提交事务, 进入方法时自动开启事务, 方法执行完会自动提交事务, 如果中途发生了没有处理的异常, 会自动回滚事务。如果事务A存在,会被挂起(保存事务A状态),事务B的异常不会影响事务A。事务B以非事务执行,如果事务A存在,挂起事务A。如果事务A存在,事务B加入事务A (成为同一事务)

2025-09-19 17:01:57 886

原创 【Spring生态】MyBatis-Plus

MyBatis-Plus(简称 MP) 是⼀个 MyBatis 的增强工具, 在 MyBatis 的基础上只做增强不做改变, 为简化开发, 为提高效率而生。入门程序中的使用, 都是简单的CRUD, 在实际的应用场景中, 还需要使用更复杂的操作, MyBatis-Plus 也提供了相应的支持.在实际的开发中, MyBatis-Plus提供的操作不能满足实际需求, MyBatis-Plus 也提供了自定义。如果实体类和数据库不是按照上述规则定义的话, MyBatis-Plus也提供了一些注解, 用于标。

2025-09-18 21:18:19 1042

原创 【Spring生态】Spring IoC&DI

也就是说: 获得依赖对象的过程被反转了, 需要某个对象时, 传统开发模式中需要自己new 创建对象, 而现在, 则把创造对象的任务交给容器, 程序中只需要。这样的话, 即使依赖类发生任何改变,当前类都是不受影响的,这就是典型的控制反转,也就是 IoC 的实现思想。不再 是使用方对象创建并控制依赖对象了,而是把依赖对象注入当前对象中,依赖对象的控制权不再由当前类控制了。如果类中有多个构造方法,3.依赖对象在使用前一定会被完全初始化,因为依赖是在类的构造方法中执行的,而构造方法。

2025-09-17 20:08:02 1118

原创 【Spring生态】Spring Cloud

在Spring Cloud Gateway中,当请求路由后,网关会将项目中的所有过滤器(包括GatewayFilter和GlobalFilter)合并到一个统一的过滤器链中,并按照特定的顺序执行。Nacos是Spring Cloud Alibaba的组件, Spring Cloud Alibaba遵循Spring Cloud中定义的服务注册, 服务发现规范。注册中心可以维护⼀个服务列表, 哪个机器上线了, 哪个机器宕机了, 这些信息都会自动更新到服务列表上, 客户端拿到这个列表时可以直接进行服务调用。

2025-09-16 22:04:26 1360

原创 【Vue】Pinia: vue3状态管理, ElementPlus组件库

⼀个基于Vue3开发PC端开源UI组件库,专为开发者提供 了一套优雅而灵活的UI组件。它包含了各种常用的Web组件, 如按钮、表单、导航等;以及⾼级组件, 如日期选择器、对话框等。Pinia 是一个状态管理工具, Vue 的专属状态管理库,它允许。它可以让不同组件的数据保持同步, 以及数据的修改都是可追踪的。234在main.js中进行。可以大大提高开发效率。

2025-06-18 10:18:21 362

原创 【Vue】路由,vue-router, vue3路由管理器

即便给to属性传递了一个对象, 最终在显示上还是会变成字符串的格式, 因此无论是传字符串还是对象, 接收的写法都不变。比如生活中的路由, 是设备与ip地址的映射关系, 不同的设备连接到同一个路由器, 会得到一个唯一的ip地址。作区分, route仅代表当前激活的路由,用于获取路由参数, 而router代表的是整个路由的实例。一个做好的, 大的, 形成的页面, 如京东首页, 仅用于做大块展示, 无需复用, 配合路由切换。之前的操作要手动输入地址,才能切换页面,这很麻烦, 接下来的操作可以点击链接进行跳转。

2025-06-16 10:17:57 633

原创 【Vue】自定义指令+插槽

在用slot占位时, slot标签中填写的内容就是插槽默认值, 在没给插槽传递数据时, 会自动显示默认值的内容。一个组件内有多处结构,需要外部传入标签,而默认插槽只能定制一处结构, 因此需要通过具名插槽, 进行定制。插槽本质上就是一个占位符, 今后可以给这个占位符传入想要的组件结构, 从而提高组件的灵活性和可复用性。上述代码自定义指令要想绑定数据, 需要使用两个钩子, 但简化形式可以把两个钩子简化为一个函数。的插槽, 用 slot 占位的同时, 还可以给 slot 绑定 数据,• 默认(匿名)插槽。

2025-06-15 08:43:30 206

原创 【Vue】v-model进阶+ref+nextTick

原理: v-model只是个语法糖,作用在原生输入框input上,本质是给input传了一个value属性, 并监听input事件, 拿到了输入框的值, 数据一变, 就去影响了视图的更新。当代码中响应式数据变了, 想获取到更新后的DOM如果用之前的方法是拿不到的, 这是因为DOM的更新是异步的, 因此需要nextTick方法, 把代码写在这个方法的回调中。返回一个ref响应式数据, 该数据的初始值与父传子的v-model数据相同。可以实现双向数据绑定: 数据变了,视图跟着变, 视图变了,数据跟着变。

2025-06-14 11:52:51 423

原创 【Vue】组件及组件化, 组件生命周期

这是一种代码的开发思想, 可以把一个大的页面拆成一系列小的组件, 分而治之,先拆分, 再组装, 提高代码复用性与维护性。类似乐高和积木一样,我们可以通过任意的乐高或积分进行组合,拼装成我们需要的成品。每个 Vue 组件实例的生命周期中, 会自动运行一些函数,这些函数被称为。注意: 每新建一个vue文件,内部会默认导出这个组件的对象。(局部组件仅当前导入页面生效, 而全局组件对所有页面生效)在min.js中注册, 在项目的任何组件中都能使用。,代码上体现在是一个独立的 .vue 文件。

2025-06-11 16:37:11 364

原创 【Vue】scoped+组件通信+props校验

组件化开发中,通过代码拆分和组合化作一系列组件的方式进行开发,这种情况下,组件之间难免需要数据传递,这就需要组件通信。子组件的props数据来源于父组件, 当父组件数据改了, 会影响子组件的props,这个方向只能是父 --> 子。的数据是外部的, 是父组件提供的 → 不能直接改,遵循单向数据流原则, 子组件若想改, 需要用到子传父的通信规则。谁使用, 谁就是父组件, 谁被使用, 谁就是子组件。props是只读的,子组件不能修改父组件传递的数据,方式, 通知父组件,父组件收到通知后自行修改。

2025-06-09 12:21:05 545

原创 【Vue】指令补充+样式绑定+计算属性+侦听器

为了方便开发者进行样式控制, Vue 扩展了 v-bind 的语法, 可以针对 class 类名 和 style 行内样式 两个属性进行控制, 进而通过数据控制元素的样式。计算属性的方法无论调用多少次, 都只会执行一次, 这是因为在首次执行时, 它已经把结果缓存到内存中, 二次继续执行时,上述中展示的是计算属性的默认简易写法, 它是只读的, 不能直接改, 只能通过修改依赖的方式进行修改。基于现有的数据, 通过计算得到的新数据, 当现有的数据变化时,会自动重新计算。监视响应式数据的变化, 当数据变了。

2025-06-06 11:30:06 1055

原创 【Vue】初学Vue(setup函数,数据响应式, 脚手架 )

原理: vue内部会尽可能地复用DOM值, 做最小的更新, 当添加了key后, 用key来标明当前元素的特性是否发生了变化, 如果key不变, vue直接复用之前的DOM。是 Vue 3 的一种更简洁的 Composition API 语法糖, 不必使用默认导出, 也不需要使用return返回, 会自动暴露给模板。(v-show、v-if、v-else、v-else-if), 根据表达式是true还是false, 决定标签是否展示。(v-html、v-text), 类似于插值,把表达式结果渲染到双标签中。

2025-06-04 21:24:02 1066 1

原创 【Vue】必会的前置知识2

相当于提供了一个本地的数据库, 前端工程师可以不依赖于后端, 直接把数据存储到浏览器, 且可以做到, 当浏览器刷新时, 数据不会丢失, 达到数据的持久化存储。存储的数据没有过期日期,只要不手动删除(通过 JavaScript、清除浏览器缓存或本地存储的数据来清除), 数据就会永久存储。模块化是一种代码的开发思想,不会把所有的代码卸载一个文件, 而是会根据代码的不同功能进行划分, 分类进行管理。该存储区域在页面会话期间可用(仅为会话存储数据),即始于浏览器打开, 止于当前窗口或浏览器关闭。

2025-06-03 09:30:00 646

原创 【Vue】必会的前置知识1

举例, 一个有三个元素“1, 2, 3”的数组arr, 存储方式如上, 往其中添加或删除时, 不影响内存地址。const 声明的数组可以添加或删除, 声明的对象可以添加或修改属性, 因为。函数体只有一句话时, 可以省略大括号, 此时箭头函数自带return的功能。可以把指定对象的所有key放到一个数组中, 从而可以很灵活地遍历对象。当函数体直接返回一个对象时, 如果简写, 需要给对象加一对小括号。当属性名和属性值的名字⼀样时, 并且配合变量时,可以简写。用一对单引号或双引号声明, 基本都用单引号。

2025-06-02 11:26:31 467

原创 【Docker】存储卷

卷名称(如果本地没有, 将自动创建)(如果name指定为宿主机目录, 则会创建绑定数据卷, 而不是docker管理卷)目录下,只需要指定容器内挂载路径,容器引擎 daemon 会在宿主机自行创建对应的目录(由docker来管理)2.容器和宿主机的这一绑定关系指向了同一目录, 因此两个目录之间的数据是同步的,宿主机和容器都能读到。src指定为宿主机目录, 则会创建绑定数据卷, 而不是docker管理卷)宿主机的某一目录与容器中的某一目录建立的一种绑定关系,这就是。3.容器的销毁并不会销毁存储卷中的数据。

2025-05-27 13:35:49 1219 1

原创 【Git】标签管理

tag 很好的解决这个问题,因为 tag一定要给一个让人容易记住,且有意义的名字。也可以通过在末尾额外指定commit id 的方式, 来给历史修改版本打上标签。例如,在项目发布某个版本的时候,针对最后⼀次 commit 起一个。命令可以让最新一次的提交打上对应的标签名。若想把当前所有标签都进行推送, 可以使用。这样的标签,来标识里程碑的意义。命令可以查看当前所拥有的标签名。要想查看标签的描述, 需要通过。可以把指定的标签推送到远程仓库。命令, 来给标签打上描述。命令, 来进行删除标签。

2025-05-21 08:38:54 231

原创 【Git】远程操作

因此, 多个人协作的方式,譬如说甲在自己的电脑上改了文件A,乙也在他的电脑上改了文件A,这时,只需把各自的修改推送给对方,就可以互相看到对方的修改了。.gitignore 也排除了,因此可以添加一条例外规则, 在想排除的文件名前加“!可以简单理解为,每个人的电脑上都是一个完整的版本库,这样在工作时,就不需要联网。还有些时候, 编写了忽略规则为“.*”, 排除所有“.”开头的隐藏文件,文件,然后把要忽略的文件 名填进去,Git 就会自动忽略这些文件了。了,因为版本库就在自己的电脑上。是要被添加的,可以用。

2025-05-20 14:56:38 424

原创 【Git】分支管理

合并时,需要将dev1分支合并到master分支, 但在合并时, git没办法自己知道到底是保留master分支的修改, 还是dev1分支的修改, 因此就会出现合并冲突,报错。在dev上commit的内容, 不会在master分支上体现, 这是因为commit操作会新增一个提交版本, 并导致HEAD指向的dev分支, 指向最新的这个提交版本。现在bug修复了, 但dev2没有开发完, 要接着开发,切换到dev2, 会发现dev2修改的内容不见了, 这是因为内容都存到了stash中, 现在要用。

2025-05-19 12:44:32 864

原创 【Git】基本操作

如果有⼀天发现之前的工作出现了很大的问题,需要在某个特定的历史版本重新开始,这个时候,就需要版本回退的功能了。参数,可以将暂存区的内容退回为指定的版本内容, 再指定HEAD, 表示退回到当前版本(如果是HEAD^就是上一个版本, HEAD^^就是上两个版本......)在初始化本地仓库后, 需要新增两个配置项, 一个是name, 一个是email, 这两个是必须要配置的, 如果不配置, 可能让版本库功能失效, 需要通过。命令, 不但可以删除工作区中的对应内容, 还可以同时将工作区中的变动提交至暂存区。

2025-05-18 11:11:27 950 1

原创 【编程基础】多线程

指定能够唯⼀识别对象的属性,MyBatis 会使⽤ getGeneratedKeys 的返回值或 insert 语句的 selectKey ⼦元素设置它的值,默认值:未设置。我们在上⾯查询时发现, 有⼏个字段是没有赋值的, 只有Java对象属性和数据库字段⼀模⼀样时, 才会进⾏赋值,需要更改。但是这样的话, 只能查找id=4 的数据, 所以SQL语句中的id值不能写成固定数值,需要变为动态的数值。指的就是持久化操作的层, 通常指数据访问层(dao), 是⽤来操作数据库的。

2025-05-17 11:12:06 768

原创 【网络原理】网络原理核心知识

指定能够唯⼀识别对象的属性,MyBatis 会使⽤ getGeneratedKeys 的返回值或 insert 语句的 selectKey ⼦元素设置它的值,默认值:未设置。我们在上⾯查询时发现, 有⼏个字段是没有赋值的, 只有Java对象属性和数据库字段⼀模⼀样时, 才会进⾏赋值,需要更改。但是这样的话, 只能查找id=4 的数据, 所以SQL语句中的id值不能写成固定数值,需要变为动态的数值。指的就是持久化操作的层, 通常指数据访问层(dao), 是⽤来操作数据库的。

2024-11-11 07:30:00 1305

原创 【Spring生态】Spring AOP

spring在帮我们管理对象时,它一般会走构造方法,而代码中有两个构造方法,它不知道使用哪个,因此它使用了默认的无参构造方法,这样一来UserService就为null值,报错了。在这里,UserService这个对象交给了Spring进行管理,然后通过@Autowired注入给UserController这个使用方,这就是。2.@Autowired是spring框架提供的注解,@Resource是jdk提供的注解。但需要注意的是,如果有了带参的构造方法,那么默认提供的无参构造方法就不存在了。

2024-11-06 08:00:00 1538

原创 【Spring生态】MyBatis

不再是使用方对象创建并依赖对象,而是把依赖对象注入当前对象中,依赖对象的控制权不再由当前类控制,这样即便再怎么改都不会影响当前类。但如果放了多个对象,在main函数中的语句就是不正确的,因为spring不知道要拿哪个对象,这会报错,所以我们要根据名称去拿。这样一来,在该代码中,就无法通过方法原本的名称“userinfo”去获取了,只能根据Bean注解指定的name来获取。通用程序的实现代码,类的创建顺序是反的,如果想改tire需要连同之前的一起改,很麻烦。,也就是说Spring是一个“控制反转”的容器。

2024-11-04 09:00:00 865

原创 【Spring生态】Spring Web MVC

但如果使用这样的方式,如果只传了一个参数,就会报404错误,虽然PathVariable的源码中,也有一个boolean类型的required方法默认为true,但当我们设置required属性为false时,也发生了404报错。一种轻量级数据交互格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,其本质上是字符串,负责在不同的语言中数据传递与交换。这段url末尾的“1”就是RequestMapping注解中大括号内的articleId,这是一个变量。这样的类,可以用于转化成json数据。

2024-10-30 07:30:00 755

原创 【MySQL】MYSQL核心机制

配置环境后,附带的maven包中的代码有成百上千行,如果没有给我们写的代码打标记,这相当于Spring要一次阅读所有的代码,这对于Spring的负担很大,因此它会直接不看,并产生状态码报错。这个注解表示参数绑定,当发送信息时,默认会把“zhangsan,lisi,wangwu”封装成一个数组,因此使用数组接收是OK的,但使用list就不行了,所以我们需要把数组转换为list。可以理解为一个分发器,用于决定对视图发来的请求,用哪一个模型进行处理,以及处理完后需要跳转回哪一个视图,即用来连接视图与模型。

2024-10-28 07:30:00 1791

原创 【编程基础】JUC核心内容

意味着没有其他代码穿插到这两个代码之间执行,此时可以安全地修改变量中的内容:将寄存器2的值(oldvalue+1)交换(赋值)到value中。刚开始使用synchronized加锁,首先锁会处于“偏向锁”状态,遇到线程之间的锁竞争,升级到“轻量级锁”2.比较内存和寄存器1中的值,是否相等,若不相等,则无事发生,若相等,就交换内存和寄存器2的值。比较内存和cpu寄存器中的内容,如果发现相同,就进行交换(交换的是内存和另一个寄存器的内容)进一步统计竞争出现的频次,达到一定的激烈程度之后,升级到“重量级锁”

2024-10-10 08:15:00 843

空空如也

空空如也

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

TA关注的人

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