![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring源码解析
cygodwg
663207134562
展开
-
spring IOC核心类DefaultListableBeanFactory的世界观
IOC作为Spring的核心功能其核心思想: 帮用户管理对象,对象的创建不需要再由应用实现,而是交给了spring来管理。也就是对象的控制交给了第三方,也就是控制反转的由来。 下面是Spring IOC核心工厂类的结构图 从这个类结构图我们可以看出DefaultListableBeanFactory实现了哪些功能 1、 是一个BeanDefinition注册器 2、 最重要的它是一个...原创 2019-12-13 17:23:12 · 191 阅读 · 0 评论 -
spring源码阅读(1)- ioc依赖注入之"helloworld"
public static void main(String[] args){ ClassPathResource classPathResource = new ClassPathResource("iocarch/beanlifecycle2/springcontext.xml"); DefaultListableBeanFactory beanFactory...原创 2018-10-16 18:02:50 · 167 阅读 · 0 评论 -
spring源码阅读(2)-aop之动态代理
spring AOP动态代理使用的是运行期织入的动态代理方式:有java原生的动态代理和cglib动态代理两种方式可选,下面我们为这两种方式分别编写一个实例,并在原理上做一些较深的介绍。 1、JAVA动态代理 java的动态代理是基于接口方法的代理,先看一个java动态代理例子: 我们先看下程序的类关系图吧 再来看看JdkDemo @Test public void pr...原创 2018-10-19 16:45:17 · 103 阅读 · 0 评论 -
spring源码阅读(1)- ioc依赖注入之bean解析
首先我们先大致对BeanDefinition做一个宏观功能上的了解: 1、bean的实现类,(可通过实现类的全限定名反射 创建类对象) 2、bean属性数据 3、bean依赖(父类) 4、行为配置-声明周期相关的init-method,destory-method 可见BeanDefinition是实例化bean的核心信息。 而XmlBeanDefinitionReader是sprin...原创 2018-10-17 00:14:53 · 99 阅读 · 0 评论 -
spring源码阅读(2)-aop之jdk动态代理深入解析
续spring源码阅读(2)-aop之j动态代理 我们从需求作为动态代理发展的切入吧 现在有5个已经投产了的run100m的实现,我们新的需求需要监控不同实现的运行性能,如果我们针对这五个实现分别去添加性能监控的代码,如此就造成两个问题: 一个是已经稳定的代码需要重新测试, 一个是设计上相同的代码出现在项目的各个地方,以后需要修改就需要修改5个地方,如果有新加实现就需要修改更多的处理点。 ...原创 2018-10-19 17:56:31 · 148 阅读 · 0 评论 -
spring源码阅读(1)- ioc依赖注入之bean加载
还是先看下DefaultListableBeanFactory的类结构图 我们从User user = (User) beanFactory.getBean("user");入手进入bean的加载管理流程。 这里还是坚持走主线的流程,去掉无关的枝叶,尽量让业务变得简单。 开始进入代码,首先我们跟到AbstractBeanFactory这个类下面的doGetBean protecte...原创 2018-10-17 15:31:47 · 150 阅读 · 0 评论 -
spring源码阅读(2)-aop之源码解析篇
经过一个aop术语介绍和动态代理的深入讲解,我们终于可以来看aop的源码了,下面跟着博主一点点剖析spring aop源码的实现吧 我们知道spring使用中我们只要做好相关的配置,spring自动帮我们做好了代理的相关工作。 我们从三个方面入手吧 1、配置 2、创建代理 3、获取代理类 配置 我们从AopNamespaceHandler入手,这个是自定义配置的实现类 publi...原创 2018-10-20 16:37:06 · 141 阅读 · 0 评论