Spring框架基础知识

1.Spring框架的由来与发展:

(1).Spring是Java Web三大经典框架(Struts、Spring、Hibernate ,SSH)中主要用于降低模块之间耦合度的框架,实际上Spring除了能够通过IoC降低模块之间的耦合度外,还提供了其它功能。

(2).2002年,Rod Johnson编著出版了《Expert one to one J2EE design and development》,该书中对JavaEE框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破J2EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。

(3).Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,2003年推出Spring1.0测试版;2004年3月24日,发布了1.0正式版;同年他又推出了一部堪称经典的力作《Expert one-to-one J2EE Development without EJB》,该书在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式。在该书中,作者根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson成为一个改变Java世界的大师级人物。

(4).传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现“一次编写,到处运行”的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务、事务处理等。Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。

(5).2006年,推出Spring2.0;2007年推出Spring2.5;2008年推出Spring3.0;2011年推出Spring3.1。目前,Spring最新版本是Spring4。其中Spring4又多了一些新特性,大家也可以去查阅资料。





2.Spring软件包的下载:

(1).对于Spring软件包的下载,我们可以进入官网下载,但是好多的英文,其中又有很多东西,所以有一种简单的方法,接下来我附上一个镜像网站:http://maven.springframework.org/release/org/springframework/spring/ ,大家可以从这里下载。

(2).大家也可以用下面这种方式来下载Spring的软件包,我们可以打开这个地址:Spring的软件仓库地址 ,点击这个http://repo.spring.io 网址后,如下图所示:

按照上面红色箭头指向处点击Artifacts后,如下图所示:


再打开Quick Search后,出现下图:



在上图我们已经输入搜索内容,点击Search按钮后,就可以选择我们所需要的Spring软件包进行下载了,如下图所示:

这里只需spring-framework-4.1.6.RELEASE-dist.zip即可,选中之后旁边有下载按钮,下载即可!

(3).下载完上面那个包之后,解压后,文件结构如下图所示:

文件夹包括:

docs文件夹:该文件夹下包含Spring4的相关文档、开发指南及API参考文档。

libs文件夹:该文件夹下包含Spring4的JAR包。

schema文件夹:里面包含了Spring4所用到的xsd文件。

这里先不讲如何配置Spring,因为配置Spring所需要的jar包,在我们上面下载的libs目录底下是缺少的!





3. Spring框架的体系结构:

(1).容器是指Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,可以配置每个Bean如何被创建以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,EJB经常是庞大与笨重的,难以使用。

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

Spring3的体系结构体系如下图:


(3).下面来介绍上图中的一些重要的东西:

核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory和ApplicationContext。容器使用控制反转(IoC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Spring上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如,校验、JNDI、EJB、电子邮件、国际化和任务调度等。

Spring AOP:通过配置管理特性,Spring AOP模块直接将面向切面的编程功能集成到了Spring框架中。所以,可以很容易地使Spring框架管理的任何对象支持AOP。Spring AOP模块为基于Spring3的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不必依赖EJB组件,就可以将声明性事务管理集成到应用程序中。

Spring DAO:JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(如打开和关闭连接)。

Spring ORM:Spring框架插入了若干个ORM框架,从而提供了ORM的工具,其中包括JDO、Hibernate和iBatisSQL Map。所有这些都遵从Spring的通用事务和DAO异常层次结构。

Spring Web:Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring框架支持与Struts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

Spring MVC Web框架:MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC 框架变高度可配置的。MVC容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText等。






4.Spring框架的作用与特点:
(1).Spring框架提供了“一站式服务”。Spring框架既可用在Java程序设计中,也可以用在Java Web程序设计中,甚至可以用在.NET程序设计中。另外,Spring框架中提供了多种框架技术,也可以集成其它框架技术,例如Struts2、Hibernate等。

(2).Spring框架的特点,有如下几点:

— 方便解耦,简化开发:通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的程序过度耦合。

— AOP编程的支持:通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易使用OOP(Object Oriented Programming,OOP,面向对象程序设计)实现的功能可以通过AOP轻松实现。

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

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

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

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

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






5.以上内容就是Spring框架的基础知识,因为我在课堂上学习的是Spring3,所以Spring4的新特性还没多大了解,大家可以去查阅资料,并且我在上面只提到了Spring软件包的下载,并没有讲配置,我后面会专门写篇文章讲如何搭建Spring环境并编写第一个Spring小程序,在我理解上来,不管是Spring3还是Spring4,应该都是大同小异的,只不过Spring4在Spring3的基础上添加了更多的功能,变得更强大了,我也是刚学!

写得不好,请见谅,如有错误,请指出,谢谢!






  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值