![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 82
若曦`
成为自己的希望,成为自己的光
展开
-
SpringAop使用的到底是JDK动态代理还是Cglib?
1. 从源码分析① optimize标志已设置(也就是为true)② 设置proxyTargetClass(目标代理类)标志更改proxyTargetClass(目标代理类)标志的方法③ 没有指定代理接口2. 错误的推论3. 最终的推论什么时候使用Cglib代理的方式呢?1. 从源码分析之前在看spring面试题的时候,不知道正确答案,网上搜了一阵子,感觉也都说得不明不白的,于是决定自己来分析一波废话不多说,直接贴源码来分析从上面源码中,其实已经可以看出来了,AOP的作者也在上面写了注释,只要满.原创 2021-07-21 15:46:53 · 2047 阅读 · 5 评论 -
IOC的三级缓存图文详细解析(含如何解决循环依赖问题)
1. 三级缓存(1) 一级缓存模型(2) 二级缓存模型(3) 三级缓存模型2. 循环依赖问题1. 三级缓存三级缓存是为了解决循环依赖存在的一级缓存就是储存最终的完整bean的容器二级缓存是储存实例化但未初始化的半成品bean三级缓存是为了加工二级缓存中的bean,加工成为一个代理类bean(1) 一级缓存模型(2) 二级缓存模型(3) 三级缓存模型2. 循环依赖问题例如下列代码public class A{ private B b;}public class B{ .原创 2021-05-13 22:40:16 · 1823 阅读 · 4 评论 -
动态代理与SpringAOP
1.动态代理与SpringAOP的关系动态代理其实就是用InvocationHandler接口和Proxy类来实现的一种代理模式SpringAOP即面向切面编程,它对 AOP 进⾏了封装,使用面向对象的思想来实现,所以AOP的底层是用动态代理实现的2. java中的动态代理java中提供了一个InvocationHandler接口,用来继承实现动态代理public interface InvocationHandler { public Object invoke(Object proxy,原创 2021-04-27 17:19:21 · 584 阅读 · 0 评论 -
IOC执行流程及bean生命周期和作用域总结
IOC执行流程图从源码分析IOC的执行流程refresh方法内的主要步骤bean的生命周期bean生命周期的简要总结IOC主要执行流程总结IOC执行流程图从源码分析IOC的执行流程1.new ClassPathXmlApplicationContext();或new AnnotationConfigApplicationContext();创建 ClassPathXmlApplicationContext或AnnotationConfigApplicationContext,并传入配置文件或包名.原创 2021-05-12 17:15:41 · 1067 阅读 · 0 评论 -
手写框架,模拟简易的SpringIOC
要实现模拟IOC,要先明白IOC的执行流程 IOC的执行流程来自楠哥视频里的图根据该图,我们可以将步骤分为下列几步:① 扫描包,获取该包下所有加了Component注解的类② 通过反射机制获取该类的Class,即是图中的原材料③ 将获取的类的Class和Component注解中的value值封装成为一个beanDefinitions对象④ 创建一个ioc容器,以存储bean(即是beanName,和对应的实例对象)2.实现(1) 创建以下层级目录及文件说明:MyAnnotationC原创 2021-04-26 16:07:45 · 218 阅读 · 0 评论 -
一个小程序以理解控制反转
此文是我观看了楠哥的IOC视频之后,加以自己的理解写的一篇博文,不是打广告,楠哥讲解的非常详细,建议大家也可以去观看视频来学习https://www.bilibili.com/video/BV1AV411i7VH如何模拟IOC呢,首先要明白IOC的核心是什么?IOC的核心即“控制反转”,即是将创建对象的操作,赋予给程序,而不需要程序员手动去修改代码,以达到解耦的效果,这部分的博文网上有很多,就不过多解释了1. 实现思路使用配置文件的方式,让程序运行时动态读取配置文件,从而得知要创建的对象的名字,然后原创 2021-04-26 16:07:07 · 195 阅读 · 0 评论