自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何解决循环依赖

两个Bean相互依赖就可能产生问题,如:A依赖B,这时A发现B还没有创建,于是就开始创建B,创建的过程发现B要依赖A,但是A此时还没有创建好,因为A要等B创建好,于是他俩就杠上了。重点就是在对象实例化之后,都会在三级缓存里加入一个工厂,提前对外暴露还未完整的 Bean,这样如果被循环依赖了,对方就可以利用这个工厂得到一个不完整的 Bean,破坏了循环的条件。然后就开始执行属性注入,这个时候 A 发现需要注入 B,所以去 getBean(B),此时又会走一遍上面描述的逻辑,到了 B 的属性注入这一步。

2024-08-10 13:03:50 661

原创 Redis

(1)什么是持久化利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化持久化用于防止数据的意外丢失,确保数据安全性。(2)持久化过程保存什么?我们知道一点,计算机中的数据全部都是二进制,如果现在我要你给我保存一组数据的话,你有什么样的方式呢,其实最简单的就是现在长什么样,我就记下来就行了,那么这种是记录纯粹的数据,也叫做快照存储,也就是它保存的是某一时刻的教据状态。

2024-08-02 16:19:09 5715

原创 ZooKeeper

下载完成后上传的Linux的/opt/zookeeper目录下配置启动Zookeeper。

2024-07-27 19:11:17 269

原创 MySQL索引,存储引擎

mvcc,也就是多版本并发控制,是为了在读取数据时不加锁来提高读取效率和并发性的一种手段。mvcc所提到的读是快照读,也就是普通的select语句。快照读在读写时不用加锁,不过可能会读到历史数据。指的就是在读已提交和可重复读隔离级别下的快照读这两种隔离级别的事务在执行普通的SELCI操作B访问记录的版本链的过程。可以使不同事务的读一写、写-读操作并发执行,从而提升系统性能。

2024-07-27 19:05:07 1047

原创 SpringSecurity

Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架,主要用于Java平台上的web应用程序。它是Spring家族的一部分,设计用于为基于Spring的应用程序提供全面的安全服务。

2024-07-17 19:05:56 305

原创 Corn表达式

Cron表达式是一种用于配置定时任务执行规则的字符串表达式,常用于调度任务,如在操作系统中的crontab或在Java中Spring框架的。

2024-07-10 20:37:28 314

原创 SpringBoot定时任务

Cron表达式是一种用于配置定时任务执行规则的字符串表达式,常用于调度任务,如在操作系统中的crontab或在Java中Spring框架的@Scheduled注解。L0L数字MON#2。

2024-07-10 20:35:24 489

原创 多线程高级篇

​​​​​​​​wait()notify()notify()whileifwhilewait()********​​​​​​​​ABA问题是指在CAS操作时,其他线程将变量值A改为了B,但是又被改回了A,等到本线程使用期望值A与当前变量进行比较时,发现变量A没有变,于是CAS就将A值进行了交换操作,但是实际上该值已经被其他线程改变过,这与乐观锁的设计思想不符合。

2024-05-19 12:41:35 714 1

原创 多线程虚假唤醒

来唤醒等待在条件上的线程,等待的线程也可能被意外地唤醒。这可能是由于操作系统级别的一些原因,或者 JVM 的内部调度策略导致的。:通过持续循环并检查条件,可以确保只有当条件真正满足时,线程才继续执行其后的逻辑。循环时,即使线程被唤醒,它也会立即重新检查条件是否仍然满足。方法进行线程间通信时,可能会遇到“虚假唤醒”的情况。即便线程被唤醒,它也会在执行任何进一步的操作之前,通过。这样就能有效地处理虚假唤醒的情况,保证程序的健壮性。为了避免因虚假唤醒而导致的错误执行流程,通常推荐在等待条件的代码块中使用。

2024-05-15 16:59:08 279 1

原创 多线程基础篇

创建线程的方式 3种 继承Thread 实现Callable接口 实现Runnable接口’1、Thread本身就是线程 需要继承 重写run方法 run方法没有返回值 run方法不能抛异常​ 只能自己try catch 自己处理异常 外部不能获取到异常信息2、实现Runnable接口 需要实现 实现其中的run方法 run方法没有返回值 run方法不能抛异常​ 只能自己try catch 自己处理异常 外部不能获取到异常信息。

2024-05-14 19:57:18 968 2

原创 SpringMVC

MVC:模型/Model(dao,service) 视图/View(jsp) 控制器/Controller(Servlet),它是一种软件设计规范。它是将业务逻辑,数据,显示分离的方法来组织代码。主要作用是降低视图和业务逻辑间的双向耦合。Model:数据模型,用于封装数据View:页面视图,用于展示数据 eg:jsp、htmlController:处理用户交互的调度器,用于根据用户需求处理程序逻辑 eg:Servlet、SpringMvc。

2024-04-01 08:24:37 821

原创 MyBatis入门案例

回顾:JDBCMySQLJava基础(基本操作,封装,继承等)MavenJunitSSM框架:配置文件的。1、简介1.1、什么是MyBatisMyBatis 是一款优秀的持久层框架它支持定制化 SQL、存储过程以及高级映射MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集MvBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的POJO(Plain Old Java Objects),普通老式 Jav

2024-03-30 13:48:53 504 1

原创 forward(请求转发)和redirect(重定向)区别

3、请求转发是一次请求,可以使用request对象来共享数据。3、重定向是两次请求,不能使用request对象来共享数据。2、重定向可以访问其他网站(服务器)的资源。2、请求转发只能访问当前服务器下的资源。forward:1、请求转发地址栏路径不变。redirect:1、重定向地址栏发生改变。

2024-03-27 08:44:25 230 1

空空如也

空空如也

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

TA关注的人

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