• Spring源码由浅入深系列一 简介


    概述:

            Spring是一个企业级的开源框架。它提供轻量级的依赖注入、面向切面编程、全方位的整合框架。
    下图是Spring框架的组成部分,各部分内容作了简单说明。


    依赖注入: 
            依赖注入是Spring框架的灵魂。它是一种解耦组件之间关系的高层设计模式。

    依赖注入案例分析:
            现在有一个业务流程中需要把数据保存到软盘中去。最直观的方法就是直接在业务流程中创建一个软盘,用软盘的方式保存数据。如下图:

            那如果现在业务变更,我可以让客户选择用软盘来保存数据,或者是U盘。那可能的解决方式是面向接口编程,由工厂帮助我们去创建具体介质。如下图所示:

            在这里请注意,我们通常的做法是在业务流程中,根据客户的选择,由工厂生成一个特定介质给业务,这就是我们常说的简单工厂模式。但是,也可以利用反射在工厂里去创建、装配业务与介质。业务与具体的介质完全没有关系,由工厂提供。这时候工厂就变为了一个依赖注入的容器。在Spring中,这个容器由BeanFactory实现。
            Spring的灵魂是依赖注入,依赖注入灵魂就是反射。它的整个实现都是由Java反射去支撑的。

    面向切面:

            把一些公共功能定义成单独对象,然后在不修改其它类的前提下,将公共功能加入到这些类中。面向切面常用于缓存统一处理、统一异常处理等等。

    AOP(面向切面)概念:
            Joinpoint(连接点): 程序执行过程中某个特定的点,比如方法调用的时候或者抛出异常的时候
            PointCut(切入点): 需要被添加上通知的连接点的集合。
            Advice(通知): 在连接点,动态嵌入的一段独立代码(通知常用来调用系统组件方法)。
            Aspect(切面): 切入点和Advice的结合(抽象概念:定义在切入点调用通知)
            Target(目标对象): 需要被添加上Advice的对象
            代理对象:AOP框架生成的对象。在目标对象的基础上,添加了其他操作

            面向切面的实现是通过动态代理实现的:JDK动态代理、CGLIB动态代理。

            这一章,主要从宏观上把握Spring.到下一章,我们开始剖析Spring的源码。

  • 相关阅读:
    SAS 数据集生成map 文件
    尝试打开或创建物理文件 REATE FILE 遇到操作系统错误 5(拒绝访问)
    sas编程-日期相差计算函数 intnx
    msqlserver 千万级别单表数据去掉重复记录使用临时表
    bootstrap下使用模态框,在模态框内输入框中回车时,模态框自动关闭的问题及解决方法
    .net 环境下get 获取页面出现乱码问题解决
    关于富文本编辑框与纯文本编辑框初始化加载过程的问题
    SVN版本问题:svn: E155021: This client is too old to work with the working copy at
    new一个对象时,会经历哪些步骤
    var、let、const区别
  • 原文地址:https://www.cnblogs.com/writeLessDoMore/p/6939408.html
Copyright © 2020-2023  润新知