摘要: 循环依赖:两个或两个以上的bean循环引用。例如:A依赖B,B依赖A。 Spring有三种循环依赖问题: (1)构造器的循环依赖:Spring无法解决构造器的循环依赖问题,但是可以使用@Lazy将bean声明为懒加载,什么时候用到这个bean在创建。 (2)非单例bean的setter循环依赖:Sp 阅读全文
posted @ 2023-05-29 12:37 程序员_YHB 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 首先通过BeanDefinition类获取bean的定义信息,例如:是否为单例bean、是否为懒加载等信息。 (1)调用类的构造器实例化bean。 (2)依赖注入。比如setter注入,像平时开发用的@Autowire就是这一步完成的。 (3)如果该类实现了一些Aware接口,则调用这些Aware接 阅读全文
posted @ 2023-05-29 11:19 程序员_YHB 阅读(9) 评论(0) 推荐(0) 编辑
摘要: (1)Singleton:单例bean。 (2)prototype:多例bean。每次请求都会创建一个bean。 (3)request:每次http请求都会创建一个bean,该bean仅在当前http request内有效。 (4)session:在一个HTTP Session中,一个Bean定义对 阅读全文
posted @ 2023-05-29 11:07 程序员_YHB 阅读(13) 评论(0) 推荐(0) 编辑
摘要: (1)方法没有用public修饰会导致事务失效。 解决方法:在方法上使用public修饰。 (2)使用try-catch捕获异常没有抛出异常,而是由方法自己处理会导致事务失效。 解决方法:处理了异常记得抛出。 (3)方法抛出检查异常会导致事务失效,报错也会导致事务失效。 解决方法:在@transac 阅读全文
posted @ 2023-05-29 11:00 程序员_YHB 阅读(12) 评论(0) 推荐(0) 编辑
摘要: SpringIOC和SpringAOP是Spring的两个核心组件。 SpringIOC:SpringIOC是一个管理bean的容器,能够帮我们管理bean的整个生命周期,在没有SpringIOC的时候,我们需要自己手动的管理bean以及bean的依赖关系,这样会增加耦合,而有了SpringIOC, 阅读全文
posted @ 2023-05-29 10:52 程序员_YHB 阅读(19) 评论(0) 推荐(0) 编辑
摘要: Spring并没有对单例bean作线程安全的处理,在并发条件下Spring的bean是否是线程安全的有如下两种情况: (1)无状态的bean:没有数据存储能力,例如service类和dao类都是无状态的bean,所以是线程安全的。 (2)有状态的bean:有数据存储能力,在并发环境下会发生线程安全问 阅读全文
posted @ 2023-05-29 10:34 程序员_YHB 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 线程池的七大参数: (1)核心线程数。 (2)最大线程数。 (3)非核心线程存活时间。 (4)非核心线程存活时间的单位。 (5)阻塞队列。 (6)线程工厂。 (7)拒绝策略。 拒绝策略有四种: (1)由主线程执行这个任务。 (2)丢弃任务不报错。 (3)丢弃任务报错。(默认) (4)丢弃最先进来的任 阅读全文
posted @ 2023-05-28 23:29 程序员_YHB 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 死锁产生的条件:两个或者多个线程相互占用对方想要请求的资源,就会产生死锁。 死锁的四个必要条件: (1)互斥条件:同一时刻只有一个线程持有锁。 (2)请求与保持条件:一个线程因请求资源而阻塞,对已持有的资源保持不放。 (3)不可剥夺条件:线程在没有使用完自己持有的资源时,其它线程不能剥夺该线程的资源 阅读全文
posted @ 2023-05-28 22:39 程序员_YHB 阅读(17) 评论(0) 推荐(0) 编辑
摘要: ReentrantLock和synchronized都是可重入锁。 ReentrantLock可以实现公平锁和非公平锁,默认非公平锁,而synchronized只能实现非公平锁。 ReentrantLock基于AQS实现,Synchronized基于JVM的monitor实现。 ReentrantL 阅读全文
posted @ 2023-05-28 22:18 程序员_YHB 阅读(17) 评论(0) 推荐(0) 编辑
摘要: AQS是一个实现阻塞式锁的框架,ReentrantLock锁就是基于AQS实现的阻塞式锁。 AQS的原理: (1)在AQS内部维护了一个用volatile修饰的state属性用来表示资源的状态,0表示无锁,1表示有锁。类似于monitor的owner属性。 (2)在AQS内部提供了一个FIFO的双向 阅读全文
posted @ 2023-05-28 22:09 程序员_YHB 阅读(52) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示