• Spring 整体架构


    1. Core Container:核心容器(core、Beans、Context、Expression Language

    • Core、Beans框架基础构成,提供IOC、依赖注入特性。BeanFactory

    • Core:核心工具类包。

    • Beans:包含访问配置文件,创建管理bean及进行IOC,DI操作所需要的类。

    • Context:构建于Core及Beans之上,提供类似JNDI注册器框架式对象访问方法,Context集成Beans特性并提供大量扩展,国际化、  

    • 事件传播、资源加载等。支持J2EE特性(EJB、JMX、远程处理。ApplicatoinContext是Context的关键。

    • Expression Language:运行时查询,操纵对象的表达式语言。 

    2. Data Access/Integration:JDBC、ORM、OXM、JMS、TRNSACTION

    • JDBC:Spring对JDBC数据访问的所有封装。

    • ORM:关系对象映射,JPA、JDO、Hibernate、Ibatis

    • OXM:提供Object/XML映射实现的抽象层。

    • JMX:消息制造和消费。

    • Transaction:编程和声明性事务管理,实现特定的接口,并支持所有的pojo。 

    3. WEB

    • WEB模块建立与应用上下文之上,为基于web的应用提供上下文

    • Web模块:提供基础的面向Web的集成特性,

    • Web-Servlet:Spring的MVC实现,

    • Web-Struts:对Struts支持

    • Web-Porlet:

    4. AOP:面向切面的编程。

    核心类介绍 

    • DefaultListableBeanFactory:bean加载核心部分。扩展类:XmlBeanFactory,自定义xml读取XmlBeanDefinitionReader,

    • XmlBeanDefinitionReader:Xml读取。            

    • ResourceLoader:资源加载器,加载制定路径文件并返回Resource

    • BeanDefinitionReader:资源文件读取,并转换为BeanDefinition的个性功能

    • EnvironmentCapable:定义获取Environment的方法。

    • DocumentLoader:加载资源文件并转换为Document

    • BeanDefiinitionDocumentReader:读取Document并注册BeanDefinition

    • BeanDefinitionParserDelegate:读取Element 

    配置文件读取过程步骤:

    • 通过继承自AbstractBeanDefinitionReader的方法,通过ResourceLoader将资源文件转换为对应的Resource文件。

    • 通过DoucmentReader对Resource文件进行转换,转换为Doucment文件。

    • 通过实现接口BeanDefinitionDocumentReader的DefaultBeanDefinitionDocumentReader类对Document进行解析,并使用 BeanDefinitionParserDelegate对Element进行读取。

    容器基础:XmlBeanFactory

    在java中将不同的资源抽象成URL,通过注册不同的URL Handler(URLStreamHandler),格式 协议:Protocal           

    配置文件封装:Resource接口

    InputStreamSource封装任何返回InputStream的类,方法,getInputStream(),返回一个新的对象。

    当前资源状态判断,exists,isReadable,isOpen,提供对不同资源到URL,URI,FILE的转换,以及获取文件相应属性,创建相对资源(createRelative()),打印错误信息(getDescription()).

    对于不同来源的资源文件,设置相应的Resource实现

    • 文件系统:FileSystemResource

    • Classpath资源:ClassPathResource

    • URL资源:UrlResource

    • InputStream资源:InputStreamResource

    • Byte数组:ByteResource

  • 相关阅读:
    nginx利用image_filter动态生成缩略图
    uva 624 CD 01背包打印路径
    【剑指Offer学习】【全部面试题汇总】
    POJ2096-Collecting Bugs(概率DP)
    配置struts tags 输出HTML
    合并基因表达水平(merge gene expression levels, FPKM)
    设置MySQL自动增长从某个指定的数开始
    列联表(Crosstabs)
    mysql 实现行号的方法——如何获取当前记录所在行号
    shell 标出输入、标准输出、错误输出
  • 原文地址:https://www.cnblogs.com/niejunlei/p/5279559.html
Copyright © 2020-2023  润新知