Spring框架的设计理念与设计模式分析

    xiaoxiao2023-11-24  138

    Spring的骨骼架构

    Spring的核心组件:Core、Context和Bean;

    Spring的设计理念

    Spring是面向Bean的编程,Bean是核心组件。Spring解决的问题是,将对象之间的依赖关系转而用配置文件来管理,就是依赖注入机制。

    核心组件如何协同工作

    Context发现每个Bean之间的关系,为他们建立关系并维护好这种关系,是一个Bean关系集合,这个集合又叫Ioc容器Core就是发现、建立和维护每个Bean之间的关系所需要的一系列工具

    核心组件详解

    Bean组件

    Spring的org.springframework.beans包下所有类解决了:Bean的定义;Bean的创建及对Bean的解析。 Spring Bean的创建是典型的工厂模式: 三个直接子类的区别:

    ListableBeanFactory接口表示这些Bean是可列表的;HierarchicalBeanFactory表示这些Bean是有继承关系的;AutowireCapableFactory接口定义Bean的自动装配规则;

    Context组件

    Context在Spring的org.springframework.context包下,主要作用是为Spring提供运行时的环境,用以保存各个对象的状态; ApplicationContext是Context的顶级父类:

    ApplicationContext继承了BeanFactory,说明Spring容器运行的主体是Bean;ApplicationContext继承了Resourceloader接口,使得ApplicationContext可以访问到任何外部的环境

    ApplicationContext的子类:

    CongigureApplicationContext表示Context是可修改的,用户可动态添加或修改已有的配置信息WebApplicationContext是为Web准备的Context,可直接访问ServletContext。

    Application的作用:

    标识一个应用环境利用BeanFactory创建Bean对象保存对象关系表能够捕获各种事件

    Core组件

    Core组件包含很多关键类,一个重要的是资源的访问方式。Context把资源的加载、解析和描述工作委托给ResourcePattrenResolve类来完成;

    Spring的AOP的特性详解

    动态代理的实现原理

    Spring的AOP是基于动态代理实现的,JDK的动态代理的类图:

    代理模式

    代理模式就是给一个对象创建一个代理对象,由这个代理对象控制对原对象的引用,创建这个代理对象后可在调用原对象时增加一些额外的操作;

    Subject:抽象主题,是代理对象的真实对象要实现的接口,当然可由多个接口组成Proxy Subject:代理类,除了实现抽象主题定义的接口外,必须持有所代理对象的引用RealSubject:被代理的类,是目标对象

    Spring中代理模式的实现

    策略模式

    Context:使用不同策略的环境,可根据自身条件选择不同的策略实现类完成所要的操作。Strategy:抽象策略,定义每个策略都要实现的策略方法ConcreteStrategy:具体策略实现类,实现在抽象策略中定义的策略方法

    Spring中策略模式的实现

    Spring的代理方式有JDK动态代理和CGLIB代理;都使用了策略模式:

    最新回复(0)