自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于Spring中的事务管理器和事务控制

在Spring中,事务管理器是一个实现了接口的对象,用于统一管理和控制应用程序中的事务。事务管理器的作用是在适当的时候开始一个新的事务,在事务完成之后提交或回滚事务,并且在必要的时候进行异常处理。这个接口提供了几个核心方法来控制事务的生命周期,包括开始事务、提交事务和回滚事务。下面是。

2024-09-08 18:29:34 1014

原创 MySQL中的自增主键一定是连续的吗?

这次,为了减少请求次数并提高效率,它不会仅仅申请一个ID,而是申请两个ID,可能是。此时自增值已经向后滚动加一了,但是数据并没有插入成功,下次再插入时,就不能再使用上次因插入数据失败而滚动生成的键值了,必须使用新滚动生成的值。假设这是第一次插入,它会申请一个ID,比如。当这两个ID也使用完毕后,下一次请求会申请更多的ID,通常是上次数量的两倍,比如。这样就可能导致前一个事务和后一个事务之间的自增值出现跳号现象,即不连续。当另一个事务开始时,它会继续从上次批量申请剩下的ID开始使用,比如直接从。

2024-09-04 19:57:34 303

原创 什么是CAP理论?

在分布式系统中,由于网络问题,分区是一个必然要面对且处理的情况。CAP 理论的核心在于,任何分布式系统在设计时都必须在这三个特性中做出取舍,最多只能保证其中的两个特性。:在发生网络分区时,优先保证数据的一致性,可能牺牲可用性,即某些操作可能会因为需要等待数据同步而无法立即返回结果。,因为在真实的分布式环境中,网络分区是无法完全避免的,因此设计时必须考虑P(分区容错性),在C和A之间做出平衡。:在发生网络分区时,优先保证服务的可用性,即使数据可能暂时不一致,也要确保每个请求都能获得响应。

2024-06-18 21:45:10 317

原创 为什么要有重入锁?

在多线程环境中,如果一个线程已经持有一个锁,并且在持有该锁的过程中需要再次进入需要相同锁的方法或代码块,如果没有重入的能力,这个线程将会被阻塞,因为它试图获取一个已经被自己持有的锁,从而导致死锁。因此,即使一个线程已经持有一个锁,在递归调用中仍然需要递归地获取锁,这是为了确保每个递归层级的数据访问安全,同时通过计数机制来避免不必要的死锁情况。总之,重入锁的设计是为了在保证并发控制的同时,提升代码的健壮性和执行效率,特别是在存在递归调用或者复杂锁依赖的场景下,它显得尤为重要。这样的显式锁,它提供了比。

2024-06-18 09:16:21 555

原创 SpringBoot自动配置详解

当你想要查看或定制这些自动配置时,可以通过阅读Spring Boot的文档或者直接查看Spring Boot的源代码来了解具体配置类的位置和功能。这有助于避免不必要的覆盖和潜在的冲突,提高配置的灵活性和可重用性。这些类不是放在你的应用程序的源代码目录中,而是作为Spring Boot框架的一部分提供,当你在项目中引入Spring Boot的依赖时,这些自动配置类就会生效。:如果你自己定义了一个与自动配置冲突的bean或属性,Spring Boot的自动配置会优雅地退让,不会覆盖你的自定义配置。

2024-06-17 10:12:37 345

原创 MySQL:什么是脏读、不可重复读和幻读,InnoDB如何解决它们?

一言蔽之,InnoDB用行级锁解决脏读,用间隙锁解决不可重复读的问题,使用临键锁解决幻读问题。

2024-06-15 11:11:17 978

原创 学习笔记:如何解决跨域问题

跨域资源共享,跨域资源共享CORS),跨域资源共享。CORS其实是浏览器制定的一个规范,浏览器会自动进行 CORS通信,它的实现主要在服务端,通过一些来限制可以访问的域,例如页面 A需要访问B服务器上的数据,如果B服务器上声明了允许A的域名访问,那么从A到B的跨 域请求就可以完成。

2024-06-14 16:54:50 298

原创 Mybatis的一级缓存和二级缓存是什么?

首先来说缓存:合理使用缓存是优化中最常见的方法之一,将从数据库中查询出来的数据放入缓存中,下次使用 时不必从数据库查询,而是直接从缓存中读取,避免频繁操作数据库,减轻数据库的压力,同时提高系统性能。

2024-06-14 16:13:49 737

原创 TCP协议、socket缓冲区

TCP通过一系列机制确保数据的可靠传输,包括序号和确认应答机制来跟踪数据包的顺序和确认接收,重传机制处理数据包丢失,以及流量控制和拥塞控制机制来适应网络条件,防止数据溢出接收方的处理能力或网络拥堵。:TCP将数据视为无结构的字节流,应用程序可以将数据分割成任意大小的数据块进行发送,TCP会在接收端根据数据流的边界重新组装这些数据块,为上层应用提供连续的数据流,而不关心底层数据包的界限。这两个缓冲区的大小是可以配置的,合适的缓冲区大小能够影响网络通信的效率和响应速度。提供了更详细的信息和更好的性能。

2024-06-12 15:26:04 652 1

原创 为什么说Linux的内核态“几乎”可以访问计算机上的所有资源?而不是所有资源?

Linux内核态(也称为超级用户态或核心态)拥有对系统几乎所有的硬件资源和关键操作的完全访问权限。这是因为内核态允许执行特权指令,这些指令可以直接与硬件交互,进行内存管理、任务调度、中断处理等核心功能。总的来说,从技术层面讲,Linux内核在硬件和系统架构的支持下能够直接或间接控制几乎所有资源,但出于安全性和体系结构设计的考量,存在一些逻辑上或通过高级机制限制访问的场景。

2024-06-12 15:02:55 314

原创 学习笔记:用java编写WebSocket服务端

使用Java编写websocket服务端实现全双工通信。首先,我们需要明白,WebSocket的本质是基于TCP的端到端双工通信协议,它是区别于Http的一种协议。所以接到客户端发来的websocket连接请求时,需要进行验证,保证双方都支持websocket协议。

2024-06-10 22:10:39 1604

原创 JSP技术简述/请求转发与重定向

JSP 和 Servlet 是本质相同的技术。当一个 JSP 文件第一次被请求时,JSP 引擎会将该 JSP编译成一个,并执行这个 Servlet。如果 JSP 文件被修改了,那么 JSP 引擎会这个 JSP。JSP 引擎对 JSP 编译时会生成两个文件分别是.java 的源文件以及编译后的.class 文件,并放到 Tomcat 的 work 目录的 Catalina 对应的虚拟主机目录中的 org\apache\jsp 目录中。两个文件的名称会使用 JSP 的名称加”_jsp”表示。

2024-05-09 14:43:13 1509

原创 Servlet技术

servlet技术介绍 / 生命周期 / xml配置 / 路径匹配 / Filter

2024-05-09 14:33:58 1926

原创 简述双重检查锁定模式(Double-Checked Locking Pattern)

双重检查锁定模式(Double-Checked Locking Pattern)是一种在多线程环境中用于减少锁开销的技术,尤其常见于实现单例模式时。

2024-05-07 11:57:01 495

原创 Bean注入失败?如何查看容器中的Bean是否被创建成功

在SpringBoot项目中,有时候我们注入Bean会失败,失败的原因多种多样,甚至可能这个Bean根本就没有被正确的创建、纳入到容器的管理当中。此时已经可以看到容器中所有内容了。例如,我们想要查看DefaultSecurityFilterChain这个Bean是否存在于容器中,执行下列代码即可。不需要关心输出语句,主要目的是让容器被创建。那么,如何查看容器中的Bean呢?

2024-04-28 15:44:56 319

原创 同时使用mahout和ES导致依赖冲突:找不到Accountable类。

原因:ESClient和Apache-Mahout都依赖lucene包,但是ESClient依赖的lucene版本在5.0以上,而Mahout依赖的lucene版本是4.6.1,而且正好就覆盖了ESClient的包,这就导致ESClient找不到Accountable类。前提:同时使用了ESClient和Apache-Mahout。解决:直接排除mahout的依赖。

2024-04-24 10:14:04 227

原创 SpringBoot打jar包,运行找不到主类;使用Maven打包失败

简而言之,由于我在测试类中有读文件的操作,但是文件已经被删掉了,导致Maven打包时测试不通过。解决方案:点击跳过测试按钮,跳过测试即可。

2024-04-24 10:00:06 316

空空如也

空空如也

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

TA关注的人

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