zoukankan      html  css  js  c++  java
  • Spring 一、各级架构与依赖关系

    1. Spring各级架构及基本依赖关系

    Spring模块结构图

      Spring总共大约有20多个模块,这些组件分别整合在Test、核心容器(Core Container)、AOP(Aspect Oriented Programming)和设备支持(Instrumentation)、数据访问及集成(Data Access/Integeration)、Web、报文发送(Messaging)中。
    

    集成测试

      即Spring-test模块,主要为测试提供支持
    

    核心容器

      由Spring-beans、Spring-core、Spring-context、Spring-expression4个模块组成。
    
      spring-Core和Spring-beans模块是Spring框架的核心,包含了控制反转(IOC/Inversion of Control)和依赖注入(DI/Dependency Injection);
    
      spring-context模块构建于核心模块基础之上,它扩展了BeanFactory,为它添加了Bean生命周期控制、框架事件体系以及资源加载透明化功能。此外该模块还提供了许多企业级支持,如邮件访问、远程访问、任务调度等,ApplicationContext是该模块的核心接口,它的超类是BeanFactory。
    
      spring-context-support模块是对Spring IOC容器的扩展支持。
    
      spring-context-indexer模块是Spring的类管理组件和Classpath扫描。
    
      spring-expression模块是统一表达式语言(EL)的扩展模块,可以查询、管理运行中的对象,同时也可以方便的调用对象方法、操作数组、集合等。
    

    AOP和设备支持

      由spring-aop、spring-aspects和spring-instrument组成。
    
      spring-aop是Spring的另一个核心模块,是AOP主要的实现模块。作为继OOP后,对程序猿影响最大的编程思想之一,AOP极大地开拓了人们对于编程的思路。在Spring中,它是以JVM的动态代理技术(JDK InvocationHandler,Cglib MethodInterceptor)为基础,然后设计出了一系列的AOP横切实现,比如前置通知、返回通知、异常通知等,同时PointCut接口来匹配切入点,可以使用现有的切入点来匹配横切面,也可以扩展方法根据需求进行切入。
      
      spring-aspects模块集成自AspectJ框架,主要为Spring AOP提供多种AOP实现方法。
    
      spring-instrument模块是基于JAVA SE中的'java.lang.instrument'进行设计的,算是AOP的一个支援模块,主要作用是在JVM启用时,生成一个代理类,程序猿通过代理类在运行时修改类的字节,从而改变一个类的功能,实现AOP功能。
    

    数据访问与集成

      由spring-jdbc、spring-tx、spring-orm、spring-jms和spring-oxm组成
      
      spring-jdbc模块是Spring提供的JDBC抽象框架的主要实现模块,用于简化Spring JDBC操作。
    
      spring-tx模块是spring JDBC事物控制实现模块。事物控制放在业务逻辑层,基于具体的业务逻辑为基础,如果事物操作失败,则整个事物回滚。
    
      spring-orm模块是orm框架支持模块,主要集成Hibernate、JPA(Java Persistence API)和JDO(Java Data Objects),用于资源管理、数据访问对象(DAO)的实现和事物策略。
    
      spring-oxm模块主要提供一个抽象层以支持OXM(Object to XML Mapping),用于将Java对象映射成XML数据、或者将XML数据映射成Java对象。如JAXB、XMLbeans、XStream等。
      
      spring-jms模块能够发送和接收消息。
    

    Web组件

      由spring-web、spring-webmvc、spring-websocket和spring-webflux4个模块组成。
      
      spring-web模块为spring提供了最基础的web支持,主要建立与核心容器之上,通过Servlet或者Listeners来初始化IOC容器,也包含一些与web相关的支持。
      
      spring-webmvc模块是一个Web-Servlet模块,是现在Spring MVC(model view controller)的Web应用。  
      
      spring-websocket模块主要是与Web前端的全双工通讯的协议。
    
      spring-webflux是一个新的非阻塞函数式Reactive Web框架,可以用来建立异步的、非阻塞、事件驱动的服务,并且扩展性非常好。
    

    通信报文

      spring-messaging模块,是从Spring4开始新加入的模块,主要职责是为Spring框架集成一些基础的报文传送应用。
    

    Spring模块之间依赖关系

    2. Spring版本升级规律

    语义化版本命名通过规则

     版本号格式为X.Y.Z(Major.Minor.Patch)

      X、Y、Z均为非负整数
      X 表示主版本号(Major),当API得兼容性变化时,X需要递增
      Y 表示此版本号(Ninor),当增加功能且不影响API兼容性时,Y递增
      Z 表示修改号(Patch),当做Bug修复(不影响API兼容性)时,Z递增
    

    语义化版本

  • 相关阅读:
    牛客练习赛44 A 小y的序列 (模拟,细节)
    牛客假日团队赛10 L 乘积最大 (dp,大数)
    三分查找
    几何基础知识点
    POJ 2318 TOYS
    UVA 11916 Emoogle Grid(大步小步算法(解模方程对数) 快速幂 模的逆)
    UVA 11426 GCD
    Aladdin and the Flying Carpet(算术基本定理)
    算术基本定理
    数论总结帖
  • 原文地址:https://www.cnblogs.com/Qkxh320/p/spring_01.html
Copyright © 2011-2022 走看看