spring简介<0>

作者: 天空在微笑 | 来源:发表于2017-07-17 22:43 被阅读28次

    spring官网
    spring包下载地址
    介绍文章
    spring简介:spring百度百科介绍
    1.方便解耦,简化开发
    通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
    2.AOP编程的支持
    通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。
    3.声明式事务的支持
    在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。
    4.方便程序的测试
    可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。例如:Spring对Junit4支持,可以通过注解方便的测试Spring程序。
    5.方便集成各种优秀框架
    Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。
    6.降低Java EE API的使用难度
    Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。
    7.Java 源码是经典学习范例
    Spring的源码设计精妙、结构清晰、匠心独运,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。

    image.png
    Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图所示:
    组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
    1、核心容器:核心容器提供 Spring 框架的基本功能(Spring Core)。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
    2、Spring 上下文:Spring 上下文是一个配置文件,向 Spring框架提供上下文信息。Spring 上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。
    3、Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向切面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。
    4、Spring DAO:JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
    5、Spring ORM:Spring 框架插入了若干个ORM框架,从而提供了 ORM 的对象关系工具,其中包括JDOHibernateiBatisSQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
    6、Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
    7、Spring MVC 框架:MVC框架是一个全功能的构建 Web应用程序的 MVC 实现。通过策略接口,MVC框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、VelocityTiles、iText 和 POI。模型由javabean构成,存放于Map;视图是一个接口,负责显示模型;控制器表示逻辑代码,是Controller的实现。Spring框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同J2EE 环境(Web 或EJB)、独立应用程序、测试环境之间重用。 image.png

    图中将spring分为5个部分:core、aop、data access、web、test,图中每个圆角矩形都对应一个jar,如果在maven中配置,所有这些jar的“groupId”都是“org.springframework”,每个jar有一个不同的“artifactId”,另外,“instrumentation”有两个jar,还有一个“spring-context-support”图中没有列出,所以spring3的jar包一共是19个
      下面介绍这5个部分的jar以及依赖关系
    core
    core部分包含4个模块
    spring-core:依赖注入IoC与DI的最基本实现
    spring-beans:Bean工厂与bean的装配
    spring-context:spring的context上下文即IoC容器
    spring-expression:spring表达式语言

    它们的完整依赖关系



      因为spring-core依赖了commons-logging,而其他模块都依赖了spring-core,所以整个spring框架都依赖了commons-logging,如果有自己的日志实现如log4j,可以排除对commons-logging的依赖,没有日志实现而排除了commons-logging依赖,编译报错
    aop
      aop部分包含4个模块
    spring-aop:面向切面编程
    spring-aspects:集成AspectJ
    spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器
    spring-instrument-tomcat:针对tomcat的instrument实现

    它们的依赖关系



    data access
      data access部分包含5个模块
    spring-jdbc:jdbc的支持
    spring-tx:事务控制
    spring-orm:对象关系映射,集成orm框架
    spring-oxm:对象xml映射
    spring-jms:java消息服务

    它们的依赖关系



    web
      web部分包含4个模块
    spring-web:基础web功能,如文件上传
    spring-webmvc:mvc实现
    spring-webmvc-portlet:基于portlet的mvc实现
    spring-struts:与struts的集成,不推荐,spring4不再提供

    它们的依赖关系



    test
      test部分只有一个模块,我将spring-context-support也放在这吧
    spring-test:spring测试,提供junit与mock测试功能
    spring-context-support:spring额外支持包,比如邮件服务、视图解析等

    它们的依赖关系



      到这里,spring3的介绍就完了,看着这些图我相信你在maven中配置spring依赖时不会再混乱了
      下面介绍spring4,与spring3结构基本相同,下面是官网给出的结构图

    image.png

    可以看到,图中去掉了spring3的struts,添加了messaging和websocket,其他模块保持不变,因此,spring4的jar有20个
    spring-websocket:为web应用提供的高效通信工具
    spring-messaging:用于构建基于消息的应用程序

    它们的依赖关系


    相关文章

      网友评论

        本文标题:spring简介<0>

        本文链接:https://www.haomeiwen.com/subject/acaqkxtx.html