- 博客(15)
- 收藏
- 关注
原创 MySQL的MVCC是什么
MVCC 通过为每个事务提供数据的多版本快照,使得读操作和写操作可以并发进行,有效地解决了数据库的并发控制问题,提高了系统性能和数据一致性。在 MySQL InnoDB 中,MVCC 结合了回滚日志(undo log)和隐藏列来实现数据的多版本控制。
2024-09-07 14:39:21
999
原创 【解决幻读的方法】MySQL的间隙锁
锁住一行之间的间隙”意味着通过间隙锁(Gap Lock)机制锁定数据库索引中相邻行记录之间的范围,以防止其他事务在此范围内插入或删除数据,从而防止幻读。它确保了在同一个事务内多次执行相同的查询时,查询结果的一致性。
2024-09-07 14:28:26
417
原创 Spring中的事务传播行为
虽然 MySQL 本身不直接支持事务传播行为的定义,但应用程序层(例如 Spring 框架)可以通过注解或配置来实现不同的事务传播行为,来更精确地控制事务的使用。MySQL 负责底层的事务管理,如开始、提交、回滚等操作,而事务传播的具体策略一般由应用程序逻辑来决定。
2024-09-07 14:10:51
549
原创 @JsonFormat和@JsonUnwrapped区别
特性用途用于定义字段的格式(如日期、时间、数字)用于将嵌套对象的字段“展开”到父级对象的 JSON 表示中常见使用场景格式化日期、时间、数字等基本类型将嵌套对象的属性扁平化为父级对象的属性常见属性patterntimezoneshapeprefixsuffix示例输出(有注解时)日期字段格式化为指定格式的字符串嵌套对象的字段直接作为父级对象的 JSON 字段出现示例输出(无注解时)使用默认的序列化格式(如 ISO-8601 的日期格式)嵌套对象作为一个单独的 JSON 对象出现。
2024-09-06 16:28:13
464
原创 @RequestBody和@ResponseBody区别
特性用途将请求体的数据绑定到方法参数将方法的返回值写入到 HTTP 响应体中使用场景处理客户端发送的 JSON 或 XML 数据,通常用于POSTPUT请求返回 JSON 或 XML 数据给客户端,通常用于 RESTful API 的响应数据流向HTTP 请求体 -> Java 对象Java 对象 -> HTTP 响应体与的关系无直接关系,通常与一起使用来处理请求数据包含了,自动返回 JSON/XML 数据用于将 HTTP 请求体的数据转换为 Java 对象。
2024-09-06 16:05:14
915
原创 @PathVariable 和 @RequestParam区别
特性用途从 URL 路径中提取参数从请求的查询字符串中提取参数示例 URL/search?name=John示例使用提取位置路径变量部分(例如/users/123中的123查询字符串部分(例如?name=John中的John参数是否必须默认必须,如果需要可设置默认必须,可以设置是否支持类型转换是,支持简单类型转换(例如String到Long是,支持简单类型转换(例如String到Integer用于从 URL 路径中提取参数,适用于 RESTful 风格的接口。
2024-09-06 16:00:15
892
原创 Spring注解@Component (@Repository,@Service,@Controller)的关系
这四个注解的设计初衷是帮助开发者组织代码、区分应用程序中的不同逻辑层次,同时利用 Spring 的组件扫描机制简化配置工作。通过使用这些注解,开发者可以更方便地构建、管理和维护 Spring 应用程序的各个部分。
2024-09-06 15:29:05
770
原创 Spring 框架中用到了哪些设计模式?
Spring 框架使用了多种设计模式来提供一个灵活、模块化、可扩展的开发框架。这些模式有助于提高代码的可维护性和可测试性,使得开发者能够更容易地进行依赖管理、切面编程、事务管理和 MVC 开发。
2024-09-06 11:50:40
1044
原创 Spring中的@Lazy懒加载能否解决循环依赖问题?
Lazy@Lazy不能解决构造函数循环依赖。@Lazy可以推迟 Bean 的加载,但无法解决循环依赖的根本问题。使用@Lazy主要是为了优化 Bean 加载时机,提高性能,而不是用来处理循环依赖。对于不同类型的循环依赖,应采取适当的设计策略,如避免构造函数循环依赖,使用 Spring 的默认三级缓存机制解决 setter 或字段注入的循环依赖。
2024-09-06 10:44:40
1287
原创 Spring三级缓存是什么?如何解决循环依赖的?
三级缓存机制通过三级缓存的逐层检查和转移,确保 Bean 在创建过程中能够正确处理循环依赖。如果两个或多个单例 Bean 之间存在循环依赖,Spring 的三级缓存能够通过提前暴露 Bean 的早期引用来解决这个问题,而不会导致。三层缓存设计在 Spring IoC 容器中起到了至关重要的作用,使得容器能够高效、安全地管理 Bean 的生命周期和依赖关系。
2024-09-06 10:07:04
595
原创 【2024-05-01】AOP 面向切面编程
AOP: 对OOP的补充。一般处理非业务代码,如处理日志等,因为这种功能才具备复用性。假设我们有四个方法,每个方法里面都含有function这个功能,功能是类似的,那么就需要重复写4次该功能, 降低了代码的复用性。因此可以将改功能提取出来,做成一个切面。因此可以将改功能提取出来,做成一个切面。把切面aspect抽象出来,行成一个对象function,这==一个对象就表示四个切面。
2024-05-02 15:04:27
68
2
原创 【2024-04-29】@Builder注解
Builder注解为类生成相对略微复杂的构建器 API它作用于类,将其变成建造者模式可以以链的形式调用初始化实例对象生成的对象是不可以变的,可以在创建对象的时候进行赋值如果需要在原来的基础上修改可以加 set 方法,final 字段可以不需要初始化它会生成一个全参的构造函数非 final 的字段可以有默认值。
2024-04-29 23:51:31
532
原创 【2024-04-28】@Swagger注解
这样的场景,请求参数无法使用 @ApiImplicitParam 注解进行描述的时候),常用DTO、VO上。上,表示一个返回响应数据的信息(这种一般用在。,例如Controller。
2024-04-29 21:26:37
873
原创 【2023-08-13】T1431_拥有最多糖果的孩子
作者是Java小白,看了JavaSE一年还没看完,非常的痛苦,并且看完后面的前面就忘记了。恰好看到Java中的stream流,借此题练一下能否运用,故不考虑时间复杂度与空间复杂度。
2023-08-13 12:11:09
63
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人