Spring3.0读书笔记----(一)Spring框架概述

1 Spring是什么?

    Spring是分层的Java SE/EE应用一站式的轻量级开源框架,以IoC(反转控制)和AOP(面向切面编程)为内核,提供了展现层SpringMVC和持久层Spring JDBC以及业务层事务管理等众多的企业应用技术。此外,Spring以海纳百川的胸怀整合了开源世界里众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。

2 Spring有什么好处?

2.1 方便解耦,简化开发

    通过Spring提供的IoC容器,我们可以将对象之间的依赖关系由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类,属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

2.2 AOP编程的支持

    通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应对。

2.3 声明式事务的支持

    在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式灵活地进行事务的管理,提高开发效率和质量。

2.4 方便程序的测试

    可以用非容器依赖的编程方式进行几乎所有的测试工作。

2.5 方便集成各种优秀框架

    Spring不排斥各种优秀的开源框架,相反Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架的直接支持。

2.6 降低Jave EE API的使用难度

    Spring对很多难用的Jave EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。

2.7 Java源码是经典学习范例

    Spring的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及Java技术的高深造诣。

3 Spring体系结构

    Spring框架按功能可以划分为5个主要模块:IoC、 AOP、数据访问及集成、Web及远程操作、测试框架。

    IoC模块

    Spring核心模块实现了IoC功能,它将类和类之间的依赖从代码中脱离出来,用配置的方式进行依赖关系描述,由IoC容器负责依赖类之间的创建、拼接、管理、获取等工作。BeanFactory接口是Spring框架的核心接口,它实现了容器许多核心的功能。

    Context模块构造于核心模块之上,扩展了BeanFactory的功能,添加了i18n国际化、Bean声明周期控制、框架事件体系,资源加载透明化等多项功能。此外,该模块还提供了许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问等。ApplicationContext是Context模块的核心接口。

    表达式语言模块是统一表达式语言(unified EL)的一个扩展,该表达式语言用于查询和管理运行期的对象,支持设置和获取对象属性,调用对象方法、操作数组、集合等。还提供了逻辑表达式运算、变量定义等功能。使用它就可以方便地通过表达式串和Spring IoC容器进行交互。

    AOP模块

    AOP是继OOP之后,对编程设计思想影响最大的技术之一。AOP是进行横切逻辑编程的思想,它开拓了考虑问题的思想。在AOP模块里,Spring提供了满足AOP Alliance规范的实现,此外,还整合了AspectJ这种AOP语言级的框架。

    数据访问和集成模块

    任何应用程序,其核心的问题就是对数据的访问和操作。Spring站在DAO的抽象层面,建立了一套面向DAO层统一的异常体系,同时将各种访问数据的检查型异常转换为非检查型异常,为整合各种持久框架提供基础。其次,Spring通过模块化技术对各种数据访问技术进行了薄层的封装,将模式化的代码隐藏起来,使数据访问的程序得到大幅简化。这样,Spring就建立起了和数据形式及访问技术无关的统一的DAO层,借助AOP技术,Spring提供了声明式事务的功能。

    Web及远程操作、远程访问模块

    该模块建立在Application Context模块之上,提供了Web应用的各种工具类,如通过Listener或Servlet初始化Spring容器,将Spring容器注册到Web容器中。此外,Spring可以整合Struts、WebWork、Tapestry Web等MVC框架。Spring自己也提供了一个完整的类似于Struts的MVC框架,称为SpringMVC。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值