`
wuhaidong
  • 浏览: 361859 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论
阅读更多

Spring的起源和背景:

 

Rod Johson在2002编著的《Expert one to one J2EE design and development》一书中,对JavaEE正统框架臃肿,低效,脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此为指导思想,他编写了interface21框架,这是一个力图冲破JavaEE传统开发的困境,从实际需求出发着眼于轻便,灵巧,易于开发,测试和部署的轻量级开发框架。Spring框架即为interface21框架为基础,经过重新设计,并不断丰富其内涵,与2004年3月24日,发布1.0正式版。同时他又推出了一部堪称经典的力作《Expert one-to-one J2EE Development without EJB》,该书在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式.在该至一战功成,Rod Johnson成为一个改变Java世界的大师级人物.

 

传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现write once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。

 

Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案.可以说Spring是企业应用开发的"一站式"选择,并贯穿表现层,业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。

 

 

 

Spring简介:

Spring是一个开源框架,他由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。spring使用基本的JavaBean来完成以前只可能有EJB完成的事情。然而,spring的用途不仅限于服务器端的开发。从简单性,可测试性和松藕合的角度而言,任何java 应用都可以从Spring中受益.

 

目的:解决企业应用开发的复杂性

 

功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

 

范围:任何JAVA应用

 

简单来说,spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的框架.

 

轻量:从大小与开销两方法而言Spring都是轻量的.完整的Spring框架可以在一个大小只有1MB多的JAR文件里布。并且Spring所需的处理开销也是微不足道的.此外,spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

 

控制反转:Spring通过一种称作控制反转(IOC)的技术促进了松耦合。当应用了IOC,一个对象依赖的其它对象会通过被动的方法传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IOC与JNDI相反,不是对象从容器中查询依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

 

面向切面:Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的--完成业务逻辑--仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

 

容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建--甚至一个可配置原型(prototype)你的bean可以创建一个单独的实例或者每次需要时都生产一个新的实例--以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用.

 

框架:Spring可以将简单的组件配置,组合成为复杂的应用.在Spring中,应用对象被声明式地组合,典型地是一个XML文件里.Spring也提供了很多基础功能(事务管理,持久化框架集成等等),将应用逻辑的开发留给了你。

 

所有Spring的这些特征使你能编写更干净,更可管理,并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持.

为什么需要Spring?

 

你可能正在想"spring 不过是另外一个的framework"。当已经有许多开放源代码和J2EE framework时,我们为什么还需要Spring Framework?

 

Spring是独特的,因为若干个原因:

 

1.它定位的领域是许多其他流行的framework没有的.Spring关注提供一种方法管理你的业务对象.

 

2.Spring是全面的和模块化的.Spring有分层的体系结构,这意味着你选择使用它孤立的任何部分,它的架构仍然是内在稳定的.

 

因此从你的学习中,你可得到最大的价值.例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或者来管理所有的业务对象.

 

3.它的设计从底部帮助你编写易于测试的代码.Spring是用于测试驱动工程的理想的framework.

 

Spring 对于你的过程来说,它不需要一个以上的framework.Spring是潜在的一站式解决方法,定位于典型应用相关的大部分基础结构。它也涉及到其他framework没有考虑到的内容。

 

 

Spring带给我们什么?

 

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

 

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

 

3.声明式事务的支持:在Sping中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提供开发的效率和质量.

 

4.方便程序的测试:可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情.

 

5.方便集成各种优秀的框架:Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(Struts,Hibernate)等的直接支持。

 

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

 

7.Java源码是经典学习案例:Spring的源码设计精妙,结构清晰,匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣.Spring框架源码无疑是Java技术的最佳实践范例.如果想在短时间内迅速提供自己的Java技术水平和应用开发水平,学习和研究Spring源码将会是你收到

意想不到的效果.

 

 

 

分享到:
评论

相关推荐

    Spring+SpringMVC+Mybatis框架整合例子(SSM) 下载

    Spring、SpringMVC和Mybatis是Java开发中最常用的三大开源框架,它们的整合使用,通常被称为SSM框架。这个框架组合提供了完整的后端服务解决方案,包括依赖注入(DI)、面向切面编程(AOP)、模型-视图-控制器(MVC...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

    java *spring工具类 方便在非spring管理环境中获取bean

    java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...

    Spring Integration + Spring WS 整合

    Spring Integration + Spring WS 整合 在 Java 领域中,Spring Integration 和 Spring WS 是两个常用的框架,它们分别负责集成系统和 Web 服务。今天,我们将探讨如何将这两个框架整合在一起,实现一个完整的 Web ...

    spring3.0.5 所有jar文件

    包含spring 3.0.5的所有jar文件: org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE...

    SpringBatch+Spring+Mybatis+MySql (spring batch 使用jar)

    Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...

    spring2.0升级到spring3.0.5的开发包

    Spring框架是Java应用程序开发中的一个核心组件,它提供了一个丰富的IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)功能,使得开发者能够更方便地管理对象和实现模块化...

    Spring Boot整合Spring Batch,实现批处理

    在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...

    Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权

    在构建分布式系统时,Spring Cloud Gateway 作为微服务架构中的边缘服务或 API 网关,扮演着至关重要的角色。它负责路由请求到相应的微服务,并可以提供过滤器功能,如限流、熔断等。而Spring Security 则是 Java ...

    spring3.1 官方全部jar包

    spring3.1官方所有的jar包 org.springframework.aop-3.1.RELEASE.jar org.springframework.asm-3.1.RELEASE.jar org.springframework.aspects-3.1.RELEASE.jar org.springframework.beans-3.1.RELEASE.jar org....

    Spring MVC 入门实例

    这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring...

    spring-framework-3.2.18 编译无误源码

    spring-framework-3.2.18.RELEASE-Gradle编译无误-可直接导入eclipse查看。已使用Gradle编译成eclipse项目的spring源码,版本是3.2.18。可以直接导入eclipse中,导入法方法可参看:...

    Getting started with Spring Framework: covers Spring 5(epub)

    Getting started with Spring Framework (4th Edition) is a hands-on guide to begin developing applications using Spring Framework 5. The examples (consisting of 88 sample projects) that accompany this ...

    spring6pdf详细讲解

    Spring 详细讲解 Spring 是一个功能强大且功能齐全的 Java 应用程序框架,提供了一个通用的基础结构来支持开发企业级应用程序。 Spring 框架的核心是控制反转(IoC)和依赖注入(DI)模式,它们使得应用程序更加...

    SpringCloud项目实战各组件源代码案例

    Spring Cloud系列教程 Spring Boot Spring Cloud Stream 和 Kafka案例教程 springcloud生产者与消费者项目实战案例 Spring Cloud 中断路器 Circuit Breaker的应用 配置 Spring Cloud Config Server Spring Cloud ...

    基于Spring Boot 3.0、 Spring Cloud 2022 & Alibaba 的微服务RBAC 权限管理系统

    介绍一个基于Spring Boot 3.0、Spring Cloud 2022 & Alibaba的微服务RBAC权限管理系统。该系统可以实现微服务RBAC权限管理,通过RBAC权限管理机制对用户访问系统的权限进行限制,从而提高系统的安全性和可用性。同时...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    项目原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 二、 项目目的: 整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + ...

    Spring cloud与Spring boot 集成完整案例

    Spring Cloud和Spring Boot是两个非常重要的Java开发框架,它们在微服务架构中扮演着核心角色。Spring Boot简化了创建独立的、生产级别的基于Spring的应用程序的过程,而Spring Cloud则为开发者提供了快速构建分布式...

    Spring技术内幕:深入解析Spring架构与设计原理

    《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的出色架构和设计思想,还能从...

    spring-ai-core 0.8.1

    《Spring AI Core 0.8.1:开启人工智能之旅》 在现代软件开发领域,Spring框架以其强大的功能和灵活性,已经成为Java开发中的首选框架之一。而Spring AI Core则是Spring生态系统中专门为人工智能(AI)和机器学习...

Global site tag (gtag.js) - Google Analytics