Spring5源码深度解析(一)——Spring整体架构

开篇:
新的一学期,希望可以有新的收获,写这个的目的一方面是增强自己的手写能力和逻辑能力,另外一方面也可以记录自己的学习进度和学习程度。


Spring整体架构图:

Spring5源码深度解析(一)——Spring整体架构_第1张图片

Spring架构分析

  • Core Container(核心容器):里边包含Core,Beans,Context,SpEl(Spring Expression Lanuage)。

    • Core:主要包含Spring框架基本的核心工具类,Spring的其他组件也都要用到这个包里的类,简而言之,它就是其他组件的基本核心
    • Beans:此模块是所有应用都要用到的,它包含访问配置文件,创建和管理bean和进行IOC,DI的所有类
    • Context:构建于Core和Beans,是Beans的延伸和扩展,添加了对国际化(比如资源包的绑定),资源加载,事件传播和对Context的透明创建的支持。
    • Spel:提供了强大的表达式语言,用于在运行时查询和操作对象。支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文,容器和索引器,编辑和算数运算符,命名变量,从Ioc中根据名称检索对象,也支持list投影,选择和一般的list聚合。
  • Data Access(数据存取)/Integration(集成):里边包括JDBC,ORM,OXM,JMS,Transaction。

    • JDBC:包含Spring对JDBC封装的所有类
    • ORM:对象-关系映射API,比如我们经常用的Hibernate,iBatis,JPA等。
    • OXM:提供了一个对Object/XML映射实现的抽象层。
    • JMS(Java Message Service):包含一些制造和消费的消息。
    • Transaction:支持编程和声明性的事务管理,对所有POJO都适用。
  • Web:里面包括Web,WebScoket,Servlet,Portlet。

    • Web:提供了基础的面向web的集成特性,比如,多文件上传,,servlet listeners初始化IOC容器等,还包括一些Spring远程支持中的Web相关部分。
    • WebScoket:浏览器与服务端建立全双工的通信方式,解决http请求-响应带来过多的资源消耗,同时对特殊场景应用提供了全新的实现方式,比如聊天、股票交易、游戏等对对实时性要求较高的领域。
    • Servlet:包含Spring的model-view-controller(MVC)实现。
    • Portlet:基于Java的Web组件,由Portlet容器管理,并由容器处理请求,生产动态内容。提供了用于Protlet环境,Web-Servlet的MVC实现
  • Aop:提供了符合AOP联盟标准的面向切面编程的实现。可以通过定义方法拦截器和切点将传统的逻辑代码分开,降低耦合。

    • Aspects:提供了对Aspect J的集成支持。
    • Instrumentation:提供类级别的工具支持和class loader的实现。使得可以在特定的服务器上使用。

今天就主要是对Spring框架的架构进行解释和分析!由浅入深,逐步前行!

你可能感兴趣的:(Spring源码分析,Spring5源码分析)