• spring架构解析--入门(一)


    Spring 框架中的核心组件只有三个:Core、Context 和 Beans。它们构建起了整个 Spring 的骨骼架构。

    简单理解: spring core是工具,context是环境(容器),而bean则是主角。关系如图

    如上图:core包侧重于帮助类,操作工具。beans包更侧重于bean实例的描述。context更侧重全局控制,功能衍生。

    core

    core是spring的核心工具包,负责提供spring的核心原理的实现工具和核心原理的底层功能实现所需的工具,比如实现动态代理功能的asm框架、aspectJ等等。

    提供功能但不调用就是spring core的存在意义。而上层的服务会调用底层的core来实现它们各自的功能,上层服务只需要调用就好了。

    context

    主要分成三种context:XML,Annotation,Groovy针对三种形式。

    我们知道Bean包装的是Object,而Object必然有数据,如何给这些数据提供生存环境就是Context要解决的问题。

    对Context来说他就是要发现每个Bean之间的关系,为它们建立这种关系并且要维护好这种关系。所以Context就是一个Bean关系的集合,这个关系集合又叫Ioc容器,一旦建立起这个Ioc容器后Spring就可以为你工作了。

    context调用别人的功能:

    Context作为Spring的Ioc容器,基本上整合了Spring的大部分功能,或者说是大部分功能的基础,所以它调用了大部分的spring core中的方法。

    我们一般使用applicationContext时都是web应用,由web服务器来进行控制容器的启动。

    Bean

    前面已经说明了 Bean 组件对 Spring 的重要性,下面看看 Bean 这个组件式怎么设计的。Bean 组件在 Spring 的 org.springframework.beans 包下。这个包下的所有类主要解决了三件事:Bean 的定义、Bean 的创建以及对 Bean 的解析。

    对 Spring 的使用者来说唯一需要关心的就是 Bean 的创建,其他两个由 Spring 在内部帮你完成了,对使用者来说是透明的。

    Spring Bean 的创建时典型的工厂模式,他的顶级接口是 BeanFactory。通过接口的不断继承,beanfactory被不断的丰富抽象起来。层层细分之后,没有个类都的职责都变的单一了,同时在扩展该的属性时也变的更加方便。针对源代码,最好的办法还是根据名称来,最方便。

    其他

    1.工厂BeanFactory,如果使用BeanFactory来加载Spring配置文件,那么是在调用getBean时,框架调用对象的默认构造方法来创建对象。BeanFactory功能是对bean对象的生命周期进行管理的。(创建,初始化,销毁)。

    2.ApplicationContext(推荐,也是框架默认的)对象来加载Spring配置文件,会在加载时解析配置文件,创建对象,而不是在getBean时创建。其实,ApplicationContext接口继承了BeanFactory,所以具备BeanFactory所有功能,同时增加扩展的功能,例如加载资源配置文件,国际化支持等!

  • 相关阅读:
    BOM与DOM的区别与联系
    HTTP与HTTPS的区别
    总结一下C++与C#之间的区别
    点标记(lambda表达式+linq查询标记符)与linq语句(查询表达式)
    java多线程:继承Thread和实现Runable接口的区别
    打印BroadcastReceiver的所有接受者
    修改apk里面的源码
    关于启动模式中的问题
    onSaveInstanceState和onRestoreInstanceState()
    Options Menu的android3.0以上和以下版本显示刷新原理,刷新适配
  • 原文地址:https://www.cnblogs.com/Carrol/p/11351272.html
Copyright © 2020-2023  润新知