![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
框架之美
yaofengdoit
长不大的童心
展开
-
spring5-aop简单记录
一、What?AOP,面向切面编程OOP面向对象编程的模式,OOP的主要功能是数据封装、继承和多态。OOP把系统看作多个对象的交互AOP是一种新的编程方式,AOP把系统分解为不同的关注点,或者称之为切面相关概念:Aspect:切面,即一个横跨多个核心逻辑的功能,或者称之为系统关注点Joinpoint:连接点,即定义在应用程序流程的何处插入切面的执行Pointcut:切入点,即一组连接点的集合Weaving:织入,指将切面整合到程序的执行流程中Target Object:目标对象,即真原创 2020-06-13 19:08:08 · 228 阅读 · 0 评论 -
spring5源码分析系列(九)——基于Annotation的依赖注入
前言:从Spring2.0以后的版本开始,Spring引入了基于注解(Annotation)方式的配置,注解(Annotation)是JDK1.5中引入的一个新特性,用于简化Bean的配置,某些场合可以取代XML配置文件。注解可以大大简化配置,提高开发速度,但不能完全取代XML配置方式。XML方式更加灵活,并且发展的相对成熟,这种配置方式为大多数Spring开发者熟悉;注解方式使用起来...原创 2019-12-27 17:02:36 · 216 阅读 · 0 评论 -
spring5源码分析系列(八)——基于XML的依赖注入(二)
前言:上一篇讲到了populateBean方法对Bean属性的依赖注入,此篇继续后面的内容。7.BeanDefinitionValueResolver解析属性值 当容器在对属性进行依赖注入时,如果发现属性值需要进行类型转换,比如属性值是容器中另一个Bean实例对象的引用,则容器首先需要根据属性值解析出所引用的对象,然后才能将该引用对象注入到目标实例对象的属性上去,对属性进行解析...原创 2019-12-27 10:28:37 · 101 阅读 · 0 评论 -
spring5源码分析系列(七)——基于XML的依赖注入(一)
前言:前面系列文章分析了Spring IOC容器的初始化过程,接下来分析Spring的依赖注入。1.依赖注入发生的时间 当Spring IOC容器完成了Bean定义资源的定位、载入和注册以后,IOC容器中已经管理Bean定义的相关数据,但是此时IOC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况发生:(1)用户第一次通过getBean方法向IOC容索要Bean...原创 2019-12-27 10:27:02 · 122 阅读 · 0 评论 -
spring5源码分析系列(六)——IOC容器的初始化(四)
前言:上一篇讲到了解析子元素,此篇我们继续后面的内容。(15)解析过后的BeanDefinition在IOC容器中的注册接下来分析DefaultBeanDefinitionDocumentReader对Bean定义转换的Document对象解析的流程中,在其parseDefaultElement方法中完成对Document对象的解析后得到封装BeanDefinition的BeanDefinit...原创 2019-12-24 23:00:16 · 102 阅读 · 0 评论 -
spring5源码分析系列(五)——IOC容器的初始化(三)
前言:上一篇讲到了DocumentLoader将Bean定义资源转换为Document对象,此篇我们继续后面的内容。(9)XmlBeanDefinitionReader解析载入的Bean定义资源文件XmlBeanDefinitionReader类中的doLoadBeanDefinitions方法是从特定XML文件中实际载入Bean定义资源的方法,该方法在载入Bean定义资源之后将其转换为Doc...原创 2019-12-24 22:54:03 · 122 阅读 · 0 评论 -
spring5源码分析系列(四)——IOC容器的初始化(二)
前言:上一篇讲到了Xml Bean读取器(XmlBeanDefinitionReader)调用其父类AbstractBeanDefinitionReader的reader.loadBeanDefinitions方法读取Bean定义资源,此篇我们继续后面的内容。(5)AbstractBeanDefinitionReader的loadBeanDefinitions方法方法源码如下://重载方法,...原创 2019-12-24 22:50:16 · 108 阅读 · 0 评论 -
spring5源码分析系列(三)——IOC容器的初始化(一)
前言:IOC容器的初始化包括BeanDefinition的Resource定位、载入、注册三个基本过程。本文以ApplicationContext为例讲解,XmlWebApplicationContext、ClasspathXmlApplicationContext等都属于这个继承体系,这些都是我们日常开发中很熟悉的。其继承体系如下图:ApplicationContext允许上下文嵌套,通...原创 2019-12-22 20:00:11 · 184 阅读 · 0 评论 -
spring5源码分析系列(二)——spring核心容器体系结构
首先我们来认识下IOC和DI:IOC(Inversion of Control)控制反转:控制反转,就是把原先代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。所以需要创建一个容器,并且需要一种描述来让容器知道需要创建的对象与对象的关系。这个描述最具体表现就是可配置的文件。DI(Dependency Injection)依赖注入:指对象是被动接受依赖类而不是自己主动去找,即对象不...原创 2019-12-20 18:36:34 · 126 阅读 · 0 评论 -
spring5源码分析系列(一)——spring5框架模块
spring总共大约20个模块,这些模块被整合在核心容器(Core Container)、AOP和设备支持、数据访问及集成、Web、报文发送、Test 6个模块集合。组成Spring框架的每个模块集合或者模块都可以单独存在,也可以一个模块或者多个模块联合实现。模块组成和功能如下:1、核心容器:spring-beans、spring-core、spring-context、spring-exp...原创 2019-12-17 23:11:36 · 156 阅读 · 0 评论