Spring 主要模块

        Spring框架遵循模块的架构模式,总共有20多个模块组成,包括核心容器、数据访问/集成、Web、AOP等等。这些模块为我们提供了开发企业级应用所需要的一切东西。在开发过程中,这些模块并不都是必须的,可以针对具体的应用自由的选择所需要的模块。还可以将Spring与其他框架进行集成,使得开发过程更有针对性、更有效率。

        下面依次介绍这些模块。

        (1)核心容器(Core Container)

        可以看到,位于Spring结构图最底层的是其核心容器Core Container。Spring的核心容器由Beans、Core、Context和Expression Language模块组成,Spring的其他模块都是建立在核心容器之上的。

        Beans和Core模块实现了Spring框架的最基本功能,规定了创建、配置和管理Bean的方式,提供了控制反转(IOC)和依赖注入(DI)的特性。

        核心容器中的主要组件是BeanFactory类,它是工厂模式的实现,JavaBean的管理就由它来负责。BeanFactory类通过IOC将应用程序的配置以及依赖性规范与实际的应用程序代码相分离。

        Context模块建立在Bean和Core模块之上,该模块像Spring框架提供了上下文信息。它扩展了BeanFactory,添加了国际化(I18N)的支持,提供了国际化、资源加载和校验等功能,并支持与模块框架如Velocity、Freemarker的集成。

        Expression Language模块提供了一种强大的表达式语言来访问和操纵运行时对象。该表达式该表达式语言是在JSP2.1中规定的统一表达式语言的延伸,支持设置和获取属性值、方法调用、访问数组、集合和索引、逻辑和算数运算、明明变量、根据名称从IOC容器中获取对象等功能,也支持list投影、选择和list聚合功能。

        (2)数据访问/集成模块

        数据访问/集成模块由JDBC、ORM、OXM、JMS和Transaction这几个模块组成。在编写JDBC代码时常常需要一套程序化的代码,Spring的JDBC模块将这些程序化的代码进行抽象,提供了一个JDBC的抽象层,这样就大幅减少了开发过程中对数据库操作代码的编写,同事,也避免了开发者去面对复杂的JDBC API以及因为释放数据库资源失败而引起的一系列问题。

        ORM模块为主流的对象关系映射(object-relation mapping)API提供了集成层,这些主流的对象关系映射API包括了JPA、JDO、Hibernate和IBatis。该模块可以将O/R映射框架与Spring提供的特性进行组合来使用。。

        OXM模块为支持Object/XML映射的实现提供了一个抽象层,这些支持Object/XML映射的实现包括JAXB、Castor、XMLLBeans、JiBX和XStream。

        JMS(Java Messaging Service)模块包含发布和订阅消息的特性。

        Transaction模块体用了对声明式事务和编程事务的支持,这些事务类必须实现特定的接口,并且对所有的POJO都适用。

        (3)Web模块

        Web模块包括Web、Servlet、Struts和Protlet这几个模块。

        Web模块提供了基本的面向Web的集成功能,如多文件上传、使用servlet监听器初始化IOC容器和面向Web的应用上下文,还包含Spring的远程支持中与Web相关的部分。

        Servlet模块提供了Spring的Web应用的模型-视图-控制器(MVC)实现。

        Struts模块提供了对Struts的支持,提供了将一个典型的Struts Web层集成在一个Spring应用程序中的支持类。

        Protlet模块提供了一个在protlet环境中使用的MVC实现。

        (4)AOP和Instrumentation模块

        AOP模块提供了一个在AOP联盟标准的面向切面编程的实现,使用该模块可以定义方法拦截器和切点,将代码按功能进行分离,降低了它们之间的耦合性。利用source-levelde的元数据功能,还可以将各种行为信息合并到开发者的代码中。

        Aspects模块提供了对AspectJ的集成支持。

        Instrumentation模块提供了class  istrumentation的支持和classloader实现,可以在特定的应用服务器上使用。

        (5)Test模块

        Test模块支持使用JUnit和TestNG对Spring组件进行测试,它提供一致的ApplicationContexts并缓存这下上下文,他还提供了一些mock对象,使得开发者可以独立的测试代码。

        有关Spring的基本概念还有Spring框架模块的介绍到此为止,下一篇博文将展示一个基于Spring的HelloWorld程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值