文档介绍:第17章 Spring概述
Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。
Spring的核心是个轻量级(Lightweight)容器(Container),实现了IoC(Inversion of Control)模式的容器,基于此核心容器所建立的应用程式,可以达到程式元件的松散耦合(Loose coupling),让程式元件可以进行测试(Testability),这些特性都使得整个应用程式可以在架构上与维护上都能得到相当程度的简化。
Spring简介
本节将对Spring做一个简要的介绍。从中可以理解为什么在J2EE标准已经具备了完善的规范,EJB统治力量如此强大的条件下,还会产生Spring这样的框架,而且一经诞生就被众多的开发人员推崇备至。
Spring项目历史
Spring是java平台上的一个开源应用框架。它的第一个版本是由Rod Johnson写出来的。Rod在他的《Expert One-On-One Java EE Design and Development》(Java企业应用设计与开发的专家一对一)一书中首次发布了这个框架。
后来一批自愿拓展Spring框架的程序开发员组成了团队,2003年2月在著名的开源社区“e”上构建了一个项目。在Spring框架上工作了一年之后,这个团队在2004年3月发布了第一个版本(),Spring开始为众多开发人员熟悉。
Spring的由来
曾经使用过EJB开发J2EE应用的人,一定知道,在EJB开始的学习和应用非常的艰苦,很多东西都不能一下子就很容易的理解。EJB要严格地继承各种不同类型的接口,类似的或者重复的代码大量存在。而配置也是复杂和单调,同样使用JNDI进行对象查找的代码也是单调而枯燥。虽然有一些开发工作随着xdoclet的出现,而有所缓解,但是学习EJB的高昂代价,和极低的开发效率,极高的资源消耗,都造成了EJB的使用困难。而Spring出现的初衷就是为了解决类似的这些问题。
,本书也是基于此版本来讲述。新版本有以下新特性:
全面支持java6和javaEE5(JDBC 4。0,JTA ,JavaMail ,JAX-WS )。
全特性的注释驱动依赖注入,包括对限定词的支持。
支持基于classpath的组件扫描,自动侦测有注释的类。
支持AspectJ切点表达式中包含bean name切点元素。
内置AspectJ加载时编织,基于LoadTimeWeaver 提取。
更多的XML配置文件的名字空间支持,比如context和jms等,最大程度提高编写的方便性。
全面修订集成测试框架,支持JUnit4和TestNG。
新的基于注释的Servlet MVC和Portlet MVC控制器风格配置。
扩展SimpleJdbcTemplate功能,支持命名的参数等。
官方认可的Websphere支持,支持WebSphere 6 UOWManager 机制。
Spring框架的jar文件,兼容OSGi绑定,并能直接使用。
Spring ApplicationContext可被部署为JCA RAR文件,用于非主导应用模块。
JCA ,I消息监听器。
有重要价值的特性为,基于注释的MVC控制器风格,JAX-WS支持和TestNG支持。
Spring的基本概念
本节将介绍Spring的一些名词解释和Spring的基本,是读者对Spring有一个大致的了解。
Spring的组成结构
Spring框架包含许多特性,并被很好地组织在下图所示的七个模块中,
解释一下图中的各个模块:
核心容器: Spring 上下文: Spring AOP: Spring DAO: Spring ORM: Spring Web 模块: Spring MVC 框架: Spring框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境。Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境(Web或EJB)、独立应用程序、测试环境之间重用。
什么是IoC
Spring包括两个重要的概念:IoC(Inversion of Control)中文译为控制反转也可以叫做DI(Dependency Injection,