Spring事务 Spring事务Spring 管理事务的方式有几种? 编程式事务:在代码中硬编码(在分布式系统中推荐使用) : 通过 TransactionTemplate或者 TransactionManager 手动管理事务,事务范围过大会出现事务未提交导致超时,因此事务要比锁的粒度更小。 声明式事务:在 XML 配置文件中配置或者直接基于注解(单体应用或者简单业务系统推荐使用) : 实际是通过 AOP 实现 2024-01-17 Spring #Spring
SpringBoot SpringBootSpring Boot 的自动配置是如何实现的?使用Springboot时,我们需要先引入对应starter,Springboot启动时会自动加载相关依赖,配置相应的初始化参数; 自动装配的流程:SpringBoot通过**@EnableAutoConfiguration注解开启自动配置**,Spring Boot会自动根据项目中的依赖配置相关的Bean,例如,如果项目中引入 2024-01-16 Spring #Spring
SpringMVC SpringMVC说一下对MVC的理解 MVC是一种设计模式,在这种模式下软件被分为三层,即Model(模型)、View(视图)、Controller(控制器)。Model代表的是数据,View代表的是用户界面,Controller代表的是数据的处理逻辑,它是Model和View这两层的桥梁。 将软件分层的好处是,,可以将对象之间的耦合度降低,便于代码的维护。 Model:指从现实世界中抽象出来 2024-01-16 Spring #Spring
SpringAOP SpirngAOP谈谈自己对于 AOP 的了解?AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。所谓切面,相当于应用对象间的横切点,我们可以将其单独抽象为单独的模块。 Spring AOP 2024-01-15 Spring #Spring
SpringIOC SpringIOC谈谈自己对于 Spring IoC 的了解IoC(Inversion of Control:控制反转) 是一种设计思想,而不是一个具体的技术实现。IoC 的思想就是将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理。不过, IoC 并非 Spring 特有,在其他语言中也有应用。 为什么叫控制反转? 控制:指的是对象创建(实例化、管理)的权力 反转:控制权交给外 2024-01-15 Spring #Spring
MyBatis MyBatisMybatis是什么? MyBatis框架是一个开源的数据持久层框架。 它的内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。 MyBatis作为持久层框架,其主要思想是将程序中的大量SQL语句剥离出来,配置在配置文件当中,实现SQL的灵活配置。 这样做的好处是将SQL与程序代码分离,可以在 2024-01-09 MyBatis #MyBatis
MyBatis-plus MyBatis-PlusMyBatis-Plus作为一个强大的ORM(对象关系映射)框架,为Java开发人员提供了在数据库操作中更高效的工具和方法。 数据库查询在许多应用程序中起着至关重要的作用,因此优化查询效率对于提高应用程序性能至关重要。MyBatis-Plus的Wrapper提供了一种强大的工具,可以帮助我们以更直观、更灵活的方式构建复杂的SQL查询,而无需编写繁琐的SQL语句。 MyBat 2024-01-09 MyBatis #MyBatis
数据流的中位数 295. 数据流的中位数中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr = [2,3,4] 的中位数是 3 。 例如 arr = [2,3] 的中位数是 (2 + 3) / 2 = 2.5 。 实现 MedianFinder 类: MedianFinder() 初始化 MedianFinder 对象。 void addNum(i 2023-12-25 算法 > 队列和栈 #算法
RabbitMQ RabbitMQRabbitMQ 是什么?RabbitMQ 是一个在 AMQP(Advanced Message Queuing Protocol )基础上实现的,可复用的企业消息系统。它可以用于大型软件系统各个模块之间的高效通信,支持高并发,支持可扩展。它支持多种客户端如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP 等,支持 A 2023-11-11 消息队列 #消息队列
腐烂的橘子 994. 腐烂的橘子在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。 示例 1: 12输入:grid = [[2,1,1],[1,1,0],[ 2023-10-31 算法 > 图 #算法