初识Spring框架及Spring源码架构

1.Spring框架概念

        Spring框架是一个开源的JavaEE的应用程序。Spring 是众多开源java项目中的一员,基于分层的javaEE应用一站式轻量级开源框架,主要核心是IOC(控制反转/依赖注入)和aop(面向切面编程)两大技术,实现项目开发过程中的轻松解耦,提高项目开发效率。

        在项目中引用Spring技术可以带来以下好处:

        降低组件之间的耦合度,实现软件各层之间的解耦。可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务,也不需要处理复杂的事务传播。容器提供单例模式支持,开发人员不再需要自己编写实现代码。容器提供了AOP技术,利用它很容易实现如权限拦截、运行监控等功能。

初识Spring框架及Spring源码架构_第1张图片

2.Spring 源码架构

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

        1.核心容器:Spring-beans和Spring-core模块是Spring框架中的核心模块,包含控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injection,DI),核心容器提供Spring 框架的基本功能。核心容器的主要组件是BeanFactory,工厂模式的实现。BeanFactory使用控制反转(IOC)思想将应用程序的配置和依赖性规范与实际的应用程序代码分开。

        Spring上下文Spring Context:Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。

        Spring-Expression模块是统一表达式语言(unified EL)的扩展模块,可以查询、管理运行中的对象,同时也方便的可以调用对象方法、操作数组、集合等。它的语法类似于传统的EL、但提供了额外的功能,最出色的要数函数调用和简单字符串的模版函数。

        2.Spring-AOP:Spring-AOP是Spring的另一个核心模块,在Spring中,它是以JVM的动态代理技术为基础,然后设计出了一系列的AOP横切实现,比如前置通知、返回通知、异常通知等通过其配置管理特性,Spring AOP模块直接将切面的编程功能集成到了Spring框架中。所以,可以很容易的使Spring框架管理的任何对象支持AOP。

        3.Spring Data Access(数据访问):由Spring-jdbc、Spring-tx、Spring-orm、Spring-jms和Spring-oxm5个模块组成Spring-jdbc模块是Spring提供的JDBC抽象框架的主要模块,用于简化Spring JDBC。

        Spring-tx模块是SpringJDBC事务控制实现模块。使用Spring框架,它对事务做了很好的封装,通过它的AOP配置,可以灵活的配置在任何一层。

        Spring-orm模块是ORM框架支持模块,主要集成hibernate,java Persistence API(IPA)和Java Data Objects(JDO)用于资源管理、数据访问对象(DAO)的实现和事务策略。

        Spring-jms模块(Java Messaging Service)能够发送和接收信息。

        Spring-oxm模块主要提供一个抽象层以支撑OXM(OXM是Object-to-XML-Mapping的缩写,它是一个O/M-mapper,将java对象映射成XML数据,或者将XML数据映射成java对象),例如,JAXB,Castor,XMLBeans,JiBX和XStream等。

        4.Web模块:由Spring-web、Spring-webmvc、Spring-websocket和Spring-webmvc-portlet4个模块组成,Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。Web模块还简化了处理多部分请求及将请求参数绑定到域对象的工作。

        5.报文发送:即Spring-messaging模块。

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

        6.单元测试:即Spring-test模块。

        Spring-test模块主要是为测试提供支持。

你可能感兴趣的:(spring,java,后端)