`
lcywjvb
  • 浏览: 60682 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Spring 概述

阅读更多
Spring是轻量级的J2EE应用程序框架。

Spring的核心是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案 。

Spring不会特別去提出一些子框架来与现有的OpenSource框架竞争,除非它觉得所提出的框架夠新夠好,例如Spring有自己的 MVC框架方案,因为它觉得现有的MVC方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可以在Spring中整合您的Struts框架 。

Spring的核心概念是IoC,IoC的抽象概念是「依赖关系的转移」,像是「高层模组不应该依赖低层模组,而是模组都必须依赖于抽象」是 IoC的一种表现,「实现必须依赖抽象,而不是抽象依赖实现」也是IoC的一种表现,「应用程序不应依赖于容器,而是容器服务于应用程序」也是IoC的一种表现。

IoC的概念与三种DI(Dependency Injection)类型在Martin Fowler的Inversion of Control Containers and the Dependency Injection pattern中得到清楚的阐释,您可以先在以下的网址中了解IoC与DI的详细说明:
http://www.martinfowler.com/articles/injection.html

您也可以先看看这些文章,了解一下Dependency Inversion:
http://www.objectmentor.com/publications/dip.pdf

Spring简介
  关于Spring Framework,今年夏天你可能已经听见很多的议论。在本文中,我将试图解释Spring能完成什么,和我怎么会认为它能帮助你开发J2EE应用程序。

另一framework?
  你可能正在想“不过是另外一个的framework”。当已经有许多开放源代码(和专有) J2EE framework时,为什么你应该费心读这篇文章,或下载Spring Framework?

我相信Spring是独特的
  因为若干个原因:  它定位的领域是许多其他流行的framework没有的。Spring关注提供一种方法管理你的业务对象。
.  Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。  它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。
  Spring对你的工程来说,它不需要一个以上的framework。

Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。
  它也涉及到其他framework没有考虑到的内容。 尽管它仅仅是一个从2003年2月才开始的开源工程,但Spring有较长的历史根基。这个开源工程是起源自我在2002年后期出版的《Expert One-on-One J2EE设计与开发》书中的基础代码。这本书展示了Spring背后的基础架构。然而,这个基础架构的概念要追溯到2000年的早些时候,并且反映了我为一系列成功的商业工程开发基础结构的经验。
  从2003年1月,Spring已经落户于SourceForge上。现在有10个开发人员,其中6是高度投入的积极分子。

Spring的架构性的好处
  Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题。
.  Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。
  Spring 能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。   Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。
.  Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。
.  使用Spring构建的应用程序易于单元测试。
.  Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。
.  Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。
.  Spring为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate)。
  Spring确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。

Spring能做什么?
  Spring提供许多功能,在此我将快速地依次展示其各个主要方面。
  任务描述:
  首先,让我们明确Spring范围。尽管Spring覆盖了许多方面,但我们已经有清楚的概念,它什么应该涉及和什么不应该涉及。

Spring的主要目的是使J2EE易用和促进好编程习惯。
Spring 不重新开发已有的东西。因此,在Spring中你将发现没有日志记录的包,没有连接池,没有分布事务调度。这些均有开源项目提供(例如 Commons Logging 用来做所有的日志输出,或Commons DBCP用来作数据连接池),或由你的应用程序服务器提供。因为同样的的原因,我们没有提供O/R mapping层,对此,已有有好的解决办法如Hibernate和JDO。

Spring的目标是使已存在的技术更加易用。例如,尽管我们没有底层事务协调处理,但我们提供了一个抽象层覆盖了JTA或任何其他的事务策略。

Spring没有直接和其他的开源项目竞争,除非我们感到我们能提供新的一些东西。例如,象许多开发人员,我们从来没有为Struts高兴过,并且感到在MVC web framework中还有改进的余地。在某些领域,例如轻量级的 IoC容器和AOP框架,Spring有直接的竞争,但是在这些领域还没有已经较为流行的解决方案。(Spring在这些区域是开路先锋。)

Spring也得益于内在的一致性。
所有的开发者都在唱同样的的赞歌,基础想法依然是Expert One-on-One J2EE设计与开发的那些。
并且我们已经能够使用一些主要的概念,例如倒置控制,来处理多个领域。

Spring在应用服务器之间是可移植的。
当然保证可移植性总是一次挑战,但是我们避免任何特定平台或非标准化,并且支持在WebLogic,Tomcat,Resin,JBoss,WebSphere和其他的应用服务器上的用户。

Spring的核心即是个IoC/DI的容器,它可以帮程序设计人员完成组件之间的依赖关系注入,使得组件之间的依赖达到最小,进而提高组件的重用性,Spring是个低侵入性(invasive)的框架,Spring中的组件并不会意识到它正置身于Spring中,这使得组件可以轻易的从框架中脱离,而几乎不用任何的修改,反过来说,组件也可以简单的方式加入至框架中,使得组件甚至框架的整合变得容易。

Spring最为人重视的另一方面是支持AOP(Aspect-Oriented Programming),然而AOP框架只是Spring支持的一个子框架,说Spring框架是AOP框架并不是一件适当的描述,人们对于新奇的 AOP关注映射至Spring上,使得人们对于Spring的关注集中在它的AOP框架上,虽然有所误解,但也突显了Spring的另一个令人关注的特色。

Spring也提供MVC Web框架的解決方案,但您也可以将自己所熟悉的MVC Web框架与Spring解合,像是Struts、Webwork等等,都可以与Spring整合而成为进用于自己的解決方案。Spring也提供其它方面的整合,像是持久层的整合如JDBC、O/R Mapping工具(Hibernate、iBATIS)、事务处理等等,Spring作了对多方面整合的努力,故说Spring是个全方位的应用程序框架。

想要入门Spring,对于IoC/DI的了解是必要的。如果您想了解Spring的整体概念,可以看看Expert One on one J2EE Development Without EJB这本书,Spring的前身是由该作者的前一本书Expert One on one J2EE Design and Development中的一个实际程序开始,Spring本身是J2EE的一个轻量级容器解決方案,从这本书了解J2EE程序设计的考虑也是个不错的基础建构方式。对于Expert One on one J2EE Development Without EJB这本书,如果您想了解Spring,可以看chapter 7、chapter 13。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zdwzzu2006/archive/2009/09/24/4590303.aspx
分享到:
评论

相关推荐

    Spring概述与IOC.docx

    【Spring 概述】 Spring 是一个著名的 Java 开源框架,由 Rod Johnson 创建,旨在简化企业级应用程序的开发。它的核心特性包括控制反转(IoC)和面向切面编程(AOP)。Spring 框架的设计理念是轻量级,不仅在体积上...

    Java进阶之Spring概述共3页.pdf.zip

    【标题】"Java进阶之Spring概述共3页.pdf.zip" 涉及的主要知识点是Spring框架的基础概念和核心特性,这是一个广泛应用于企业级Java应用的开源框架。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程...

    动力节点_王勇_JAVA视频教程_Spring001_Spring概述

    在本Java视频教程“Spring001_Spring概述”中,主讲人王勇老师将引领我们走进Spring框架的世界。Spring是Java开发中极其重要的一个轻量级框架,它的核心特性是依赖注入(Dependency Injection,简称DI)和面向切面...

    《partner4java 讲述Spring入门》之第一步:Spring概述与Spring IoC

    《Spring入门:Spring概述与Spring IoC》是针对初学者的一篇教程,旨在引导开发者进入Spring框架的世界。本文将深入探讨Spring的核心概念,特别是Spring的Inversion of Control(IoC,控制反转)特性,以及如何在...

    T22.2_Spring 概述 java 经典教程 经典教材

    T22.2_Spring 概述 java 经典教程 经典教材

    第01章 Spring概述

    Spring概述 ①Spring是一个开源框架 ②Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却...

    03.spring概述_spring_

    **Spring 框架概述** Spring 是一个开源的 Java 应用程序开发框架,由 Rod Johnson 在2003年发起,旨在简化企业级应用的开发。它以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-...

    Spring概述ppt课件.ppt

    Spring 框架是Java平台上的一个轻量级企业级应用程序开发框架,它以其Inversion of Control(IoC,控制反转)和Aspect Oriented Programming(AOP,面向切面编程)为核心,为开发者提供了丰富的功能和组件。Spring...

    spring概述_spring_.zip

    Spring 框架是Java平台上的一个开源应用程序框架,它主要设计用于简化企业级应用的开发。Spring 提供了一个全面的编程和配置模型,旨在提高生产效率,促进良好的编程实践,并减少代码的复杂性。本篇文章将深入探讨...

    Spring概述

    Spring的一些基本概念的介绍,例如IoC,AOP等,并介绍了这么使用Spring

    Spring概述及入门

    本书首先是一本通过通俗案例讲解Spring的教程;同时也是一本深入挖掘Spring及相关框架结构、设计原理;更是一本探讨J2EE软件开发中的艺术的书。本书还想讲述一条开源框架设计中金科玉律:思想决定一切,万变不离其宗...

    spring概述

    Spring 框架是 Java 开发领域中一个极为重要的轻量级开源框架,它由 Rod Johnson 在2003年发起,旨在简化企业级应用开发。Spring 提供了一个全面的编程和配置模型,用于现代Java应用程序,特别是针对基于Java EE...

    基于java的企业级应用开发:Spring概述.ppt

    【Spring 框架概述】 Spring 是一个广泛应用于企业级 Java 应用开发的开源框架,它的核心设计理念是控制反转(IoC)和面向切面编程(AOP)。Spring 的出现使得开发者能够以非侵入式的方式编写应用程序,减少了代码...

    Spring概述开源架构源码2021.pdf

    Spring框架是Java企业级应用开发中非常重要的开源框架,它采用轻量级设计,能够提供全面的编程和配置模型,用于现代基于Java的应用开发。Spring框架的核心思想包括控制反转(IoC)和面向切面编程(AOP),这两种设计...

    软件开发框架(J2EE)Spring概述习题与答案.docx

    【Spring 框架概述】 Spring 是一个广泛应用于企业级 Java 开发的开源框架,它以其轻量级、模块化和全面的特性而受到开发者喜爱。Spring 为 J2EE 应用提供了一个全面的编程和配置模型,尤其是在实现依赖注入(DI)...

    软件开发框架(J2EE)Spring概述习题与答案.pdf

    Spring 框架是Java平台上的企业级应用开发框架,尤其在J2EE环境中,它提供了全面的解决方案。Spring以其轻量级、模块化、松耦合和强大的依赖注入特性而闻名。 1. **MVC设计模式**:MVC全称是Model-View-Controller...

    软件开发框架(J2EE)Spring概述实训指导书.pdf

    Spring 框架是Java平台上的一个核心软件开发框架,特别是在J2EE环境中,它为构建企业级应用提供了全面的解决方案。Spring以其轻量级、模块化和强大的依赖注入特性而闻名,使得开发者能够更专注于业务逻辑,而不是...

    Spring概述.

    Spring

    Spring源码解析4章150页+Spring3.2.4中文注释源码

    1、Spring概述 2、一切从bean开始 3、俯瞰Spring架构设计 4、Spring源码下载 二阶段 1、什么是IOC/DI 2、SpringIOC体系结构 3、源码分析-IOC容器的初始化 4、源码分析-IOC容器的依赖注入 5、源码分析-IOC容器的高级...

Global site tag (gtag.js) - Google Analytics