Spring源码 随笔(1)

最近在看spring源码深度解析,打算边看边记录一下:

  spring框架属于一个分层框架,大致分为20个模块;

(1)Core Container

  Core Container(核心容器):包含了beans,Core,Context和Expression Language模块。

  Core跟Beans模块是框架的基础部分,提供IOC(控制反转)跟依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典来消除对程序性单例模式的需要。

    并真正允许你从程序逻辑中分离出依赖关系跟配置。

    • Core模块主要包括Spring框架基本的核心工具类,Spring其他组件都要使用到这个包里面的类。Core模块是其他组件的核心
    • Beans模块是所有应用都要用到,它包含访问配置文件,创建和管理bean以及进行IOC/DI操作的相关的所有类
    • Context模块构建于Core跟Beans模块基础上,提供一种类似于JNDI注册器的框架式的对象访问方式。Context继承了Beans的特性,为Spring核心提供大量的扩展。

      添加了对国际化(资源事件的绑定),事件传播,资源加载和对Context透明事件的支持。Context同时也支持J2EE的一些特性,列如EJB,JMX和基础的远程处理      

      ApplicationCOntext接口是Context模块的关键

    • Expression Language模块提供了一个强大的表达式语言用于在运行时查询和操作对象,它是JSP2.1规范中定义的unifed expression language的一个扩展。
      • 该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文(accessiong the context of arrays),容器跟索引器,逻辑跟算术运算符,命名变量以及从spring的IOC容器中根据名称检索对象,它也支持list投影,选择跟list聚合

 (2)Data Access/Integration

    Data Access/Integration层包含有JDBC,ORM,OXM,JMS和Transaction模块。其中

    • JDBC模块提供了一个JDBC抽象层,它可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码。这个模块包含了spring对JDBC数据访问的所有类。
    • ORM模块为流行的对象-关系映射API。如JPA,JDO,Hibernate,ibatis等提供了一个交互层。利用ORM封装包,可以混合使用所有spring特供的特性进行O/R映射。如简单的声明性事物管理  

    spring框架包含若干个ORM框架,从而提供了ORM对象关系工具,其中包括了JDO,Hibernate和iBatisSQL Map.所有这些都遵循Spring的通用事物和DAO层异常层次结构。

    • OXM提供了一个对Object/XML 映射实现的抽象层,Object/XML 包含了JAXB,Castor,XMLBeans,JiBX和XStream.
    • JMS(Java Messaging Service)模块主要包含一些制造和消费消息的特性
    • Transaction模块支持编程和声明性事物管理,这些类必须实现特定的接口,并且对所有POJO都是用

 END:

    

      

    

猜你喜欢

转载自www.cnblogs.com/yfbk/p/9083936.html
今日推荐