自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL——MVCC实现原理流程分析

2、如过m_ids不包含trx_id,说明这个事务在ReadView生成之前就已经提交,可见。1、如果m_ids包含trx_id,表示ReadView生成时该事务。RR级别不会再生成新的ReadView。当前初始数据:接下来开启两个事务。经过一番操作后可以看到,事务A。可以看到成功改为读已提交。,接下来分析一下流程。

2025-09-13 17:45:24 970

原创 Spring Data JPA

jpa是java标准中的一套ORM规范。借助jpa可以实现使用注解或者XML的方式描述对象与实体类之间的映射关系。并实现实体对象持久化到数据库中。jpa的实现厂商有很多,比方说Hibernate、Eclipselink、TopLink。ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中JPA的:提供API来操作实体对象,执行CRUD操作,框架会自动将之转换为对应的SQL,使开发者从繁琐的 JDBC、SQL中解放出来。

2025-11-11 14:13:53 676

原创 JWT(JSON Web Token)完全指南

JWT(JSON Web Token)是一种开放标准,用在各方之间安全地传输紧凑且可验证的结构化信息。它是URL安全的令牌,核心价值是”通过签名确保信息未被篡改、来源可信“,数据本身仅通过Base64URL编码改造,不提供加密保护。

2025-10-13 19:00:00 1779 1

原创 雪花算法原理以及工具类的实现

/序列号//机器标识//数据中心标识//上一次时间戳。

2025-10-13 08:00:00 1037

原创 Spring——事件机制

Spring中的事件机制是基于观察者模式实现的一种组件间通信机制,用于解耦不同组件,实现松耦合的消息传递,它允许一个组件发送事件,其他组件接收并处理事件,而无需直接依赖彼此。

2025-10-05 22:08:52 975 2

原创 JAVA——线程池

Java 中线程池的核心实现是 java.util.concurrent.ThreadPoolExecutorint corePoolSize, // 核心线程数int maximumPoolSize, // 最大线程数long keepAliveTime, // 非核心线程空闲超时时间TimeUnit unit, // 超时时间单位BlockingQueue<Runnable> workQueue, // 任务阻塞队列ThreadFactory threadFactory, // 线程工厂。

2025-10-05 19:51:03 876

原创 Spring——事务的传播性

事务的传播性(Transaction Propagation)是Spring事务管理的一个重要概念,它定义了在多个事务方法相互调用时,事务应该如何传播。Spring框架提供了7种传播行为,这些行为在TransactionDefinition接口中定义。(默认):如果当前存在事务,则加入该事务。如果当前没有事务,则创建一个新的事务。如果当前存在事务,则加入该事务。如果当前没有事务,则以非事务的方式继续运行。如果当前存在事务,则加入该事务。如果当前没有事务,则抛出异常。

2025-10-05 14:48:43 888

原创 Spring——声明式事务

Spring声明式实现,是通过配置或来管理事务,而不需要在业务代码中像编程式事务那样管理代码。

2025-10-03 16:36:42 1000

原创 Spring——编程式事务

TransactionStatus接口表示事务的状态,用于在事务的执行过程中查询状态和控制事务。:如果当前存在事务,则创建一个事务作为当前事务的嵌套事务;(默认):如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。:如果当前存在事务,则加入该事务;:创建一个新的事务,如果当前存在事务,则把当前事务挂起。:以非事务方式运行,如果当前存在事务,则把当前事务挂起。:以非事务方式运行,如果当前存在事务,则抛出异常。

2025-10-03 11:03:56 847

原创 MySQL——锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,锁冲突是影响数据库并发访问性能的一个重要因素。

2025-09-30 21:21:47 1040

原创 JAVA锁机制

Java中的锁机制是并发编程的核心,用于解决多线程共享资源竞争问题,保证线程安全。

2025-09-30 19:00:00 1179

原创 全面解析UUID:全球唯一标识符的原理、版本与应用

8-4-4-4-12。

2025-09-27 14:55:28 1096

原创 设计模式——行为型模式

定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换许多相关的类仅仅是行为有异需要使用一个算法的不同变体算法使用客户不应该知道的数据策略模式主要包含以下三个角色:策略接口(Strategy Interface) - 定义所有支持的算法的公共接口具体策略类(Concrete Strategy) - 实现策略接口的具体算法上下文(Context) - 使用策略的类,持有一个策略对象的引用主要优点。

2025-09-22 00:30:00 667

原创 设计模式——结构型模式

想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作。在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。不希望在抽象和它的实现部分之间有一个固定的绑定关系。客户端与抽象类的实现部分之间存在着很大的依赖性时。类的抽象以及它的实现都应该可以通过子类化加以扩展。:将一个类的接口转换成客户端期望的另一个接口。对一个抽象的实现部分的修改应对客户不产生影响。想使用一个已存在的类,而它的接口不符合要求。:为子系统中的一组接口提供一个一致的界面。:动态地给一个对象添加一些额外的职责。

2025-09-14 19:48:57 666

原创 设计模式——创建型模式

设计模式是软件工程中解决常见问题的经典方案,它们代表了最佳实践和经验总结。通过使用设计模式,开发者可以创建更加灵活、可维护和可扩展的代码结构。设计模式不是具体的代码实现,而是针对特定问题的通用解决方案模板,需要在特定上下文中适当应用。设计模式的核心价值在于:提供经过验证的解决方案促进代码重用提高代码可读性和可维护性促进团队之间的沟通。

2025-09-14 17:59:51 611

原创 设计模式——七大常见设计原则

设计原则是一套经过长期实践总结的核心指导思想,旨在帮助开发者构建高内聚、低耦合、可复用、可扩展、易维护的软件系统。这些原则是设计模式的灵魂,多数设计模式都是针对某几个设计原则的具体实现的。

2025-09-11 22:04:53 641

原创 MySQL——事务、MVCC

事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要不同时失败。用一个形象的比喻:事务就像银行转账操作,从A账户扣款和向B账户加款这两个操作必须作为一个整体执行——要么都成功完成,要么都不执行。如果只执行了其中一个操作,就会导致数据不一致。

2025-09-08 23:15:18 1282

原创 MySQL存储引擎

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称为表类型。之前用了那么多表,怎么去看到底用的是哪个存储引擎呢?可以使用语句查询:SHOW CREATE TABLE 表名可以看到之前创建表的时候,即使没有手动添加引擎,mysql也有默认的存储引擎Innodb。

2025-09-08 01:45:00 1366

原创 Java Stream

Stream是处理数据的一种抽象的概念,用于高效地处理输入 / 输出操作和数据传输。它将数据视为连续的序列,允许我们逐步读取或写入数据,而不必一次性次加载全部数据到内存中。

2025-09-05 00:30:00 740

原创 Redis命令大全

忘记发了。。。

2025-08-12 22:32:40 911 1

原创 Git:现代开发的版本控制基石

在软件开发的世界中,代码的版本管理是团队协作和项目成功的核心。无论是个人开发者还是大型团队,作为当今最流行的分布式版本控制系统(DVCS),已经成为了开发者工具箱中不可或缺的工具。本文将深入探讨 Git 的核心概念、常用操作和最佳实践,助你掌握这一现代开发的基石。想象一下以下场景:你在修改代码时不小心引入了一个 Bug,却无法快速定位到问题出在哪里;团队多人同时修改同一文件,导致代码冲突难以合并;项目需要同时维护多个版本(如稳定版、测试版、新功能分支)。这些问题正是 Git 诞生的初衷。

2025-06-13 15:37:00 917 1

原创 Vue3——Pinia

Pinia 是一个轻量级的状态管理库,专为 Vue 3 设计。它提供了类似 Vuex 的功能,但 API 更加简洁,并且完全支持 TypeScript。Pinia 的设计理念是简单、直观和可扩展,使其成为 Vue 3 生态系统中状态管理的理想选择。简介 | Pinia在src目录下新建目录stores,在里面创建一个js文件,这里命名为User.js。在该文件使用defineStore函数,定义store的名称,数据或方法,最后导出。name: "张三",age: 19})return {

2025-05-20 20:31:36 686 1

原创 Vue3——父子组件通信

绑定自定义属性。

2025-05-17 14:48:46 1346 2

原创 Vue3——Watch侦听器

watch是⼀个⽤于观察和响应Vue响应式系统中数据变化的⽅法。它允许你指定⼀个数据源(可以是 响应式引⽤、计算属性、组件的属性等),当这个数据源的值发⽣变化时,你可以执⾏⼀些响应的副作 ⽤(side effects)。watch可以⽤来监听任何响应式数据的变化。手动指定监听对象。

2025-05-15 09:56:02 777 1

原创 Springboot整合MyBatisplus和快速入门

MyBatis-Plus (简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2025-04-22 23:43:25 891 4

原创 Spring Boot日志配置

日志是应用程序不可或缺的一部分,记录着程序运行的信息。

2025-04-22 14:49:27 1699 2

原创 整合SSM——(SpringMVC+Spring+Mybatis)

SSM是Java Web开发中常用的三个主流框架组合的缩写,分别对应。这三个框架协同工作,能够完成企业级应用开发中的业务逻辑、Web层交互及数据持久化任务。

2025-04-19 12:53:15 1527 1

原创 SpringBoot——过滤器和拦截器

Filter是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。拦截内容不同:Filter对所有访问进行增强,Interceptor仅对SpringMVC的访问进行增强。

2025-04-17 17:44:52 1490 2

原创 SpringBoot入门

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。极大地简化了Spring应用的搭建和开发流程,成为现代Java开发中不可或缺的工具。使用springBoot开发时要求springBoot与jdk版本要对应。

2025-03-19 05:30:00 1385 10

原创 SpringMVC——表现层数据封装、异常处理器

当控制器中抛出异常时,Spring会根据异常的类型调用相应的异常处理方法,将异常信息以RESTful的方式返回给客户端。前端接收数据格式——创建模型类,封装数据到data属性中、封装特殊消息到message中、封装操作结果到code中。@RestControllerAdvice是Spring框架中的一个注解,该类中可以定义多个方法。SpringMVC提供了快速处理这些异常的方法,就是异常处理器。可以根据需要自行增减,提供方法方便操作。异常处理器就是集中,统一的处理项目中的异常。//1表示成功、0表示失败。

2025-03-17 16:51:30 1002 3

原创 SpringMVC——REST简介及入门案例

REST(Representational State Transfer)即表现层状态转移,是一种基于HTTP协议的网络应用程序的架构风格。它强调客户端和服务器之间的交互操作,通过对资源的表现形式进行操作来实现对资源的管理。REST风格的API设计具有简单、灵活、可扩展等特点,因此在Web开发中得到了广泛应用。

2025-03-13 23:33:26 965 3

原创 SpringMVC响应页面及不同类型的数据,

控制器(Controller)处理完客户端请求后,生成的并返回给客户端的结果就是响应,响应的结果可以是静态页面,数据,HTML片段等。

2025-03-13 20:29:19 969

原创 SpringMVC中有关请求参数的问题(映射路径,传递不同的参数)

仍要注意传入的JSON对象的key值要和方法参数列表的对象属性的属性名一致,否则接收不到。想要传递json数据,点击Body,数据格式选择raw,右侧选择JSON,使用get和post提交都可。类上使用@RequestMapping设置路径前缀,相当于给该类下的所有路径都添加上了相同的前缀。示例:在controller包下,有两个类下的方法设置的请求路径均为/save。问题:在团队多人开发中,每人设置不同的请求路径,冲突问题该如何解决...post请求参数在请求体中,所以下方按钮要选择Body,再选择。

2025-03-11 21:42:15 1329 6

原创 Postman安装及使用教程

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。常用于进行接口测试。

2025-03-11 15:28:17 1346 2

原创 Spring MVC中的Controller加载控制与Bean加载控制详解

Spring MVC默认通过父子容器实现Web层与非Web组件的隔离。但在实际项目中,若未明确控制组件的扫描路径与加载规则,表现层的Controller、业务层的Service与数据层的Repository往往会被“一刀切”地扫描到同一上下文中。例如,业务层的Service被意外注册到Spring MVC的Web上下文中,或数据源DataSource等基础设施Bean被表现层的组件直接依赖。这种混乱的加载方式不仅可能破坏分层架构的纯净性,还会导致事务管理失效、依赖注入冲突,甚至引发性能隐患。

2025-03-10 23:46:39 1003 9

原创 SpringMVC概述以及入门案例

SpringMVC技术与Servlet技术功能等同,均属于Web层开发技术。SpringMVC是一种基于java实现MVC模型的轻量级Web框架。 在传统Java Web开发中,Servlet直接处理请求会导致代码臃肿(一个功能对应一个Servlet)。Spring MVC通过分层设计和组件解耦,让开发者更专注于业务逻辑。 接下来就要配置T

2025-03-10 17:51:56 1294 6

原创 JavaScript中同步任务和异步任务的区别是什么,什么是微任务和宏任务:深入理解事件循环机制

同步任务(Synchronous Task)是立即在主线程执行栈中顺序执行的代码。它们像流水线上的工人,必须等待前一个任务完成后才能开始下一个任务。

2025-03-06 14:43:29 1350 11

原创 如何使用MyBatis进行多表查询

在实际开发中,对数据库的操作通常会涉及多张表,MyBatis提供了关联映射,这些关联映射可以很好地处理表与表,对象与对象之间的的关联关系。

2025-02-28 14:46:29 1520 10

原创 MyBatis——动态SQL

MyBatis 作为一款优秀的持久层框架,其动态 SQL 功能极大地简化了复杂 SQL 语句的编写,提升了开发效率。

2025-02-10 12:59:41 1030 10

原创 Mybatis配置文件详解

在mybatis主配置文件设置别名,可以在mapper文件中直接使用别名-- 为单个类定义别名 -->-- 为指定包下的所有类定义别名,别名默认为类名的首字母小写 -->

2025-01-27 19:47:57 1366 7

空空如也

空空如也

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

TA关注的人

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