Java框架中Spring的起源基本思想

 谈起Spring的历史,那我们先了解一下Java中Spring的初衷及目标吧:

  一、Spring的初衷:

  1、J2EE开始应该更加简单。

  2、使用接口而不是使用类,是更好的编程习惯。Spring将使用接口的复杂度几乎降低到了零。

  3、为JavaBean提供了一个更好的应用配置框架。

  4、更多地强调面向对象的设计,而不是现行的技术如J2EE。

  5、尽量减少不必要的异常捕捉。

  6、使应用程序更加容易测试。

  二、Spring的基本组成:

  1、最完善的轻量级核心框架。

  2、通用的事务管理抽象层。

  3、JDBC抽象层。

  4、集成了Toplink,Hibernate,JDO,andiBATISSQLMaps。

  5、AOP功能。

  6、灵活的MVCWeb应用框架。

  三、Spring的目标:

  1、可以令人方便愉快的使用Spring。

  2、应用程序代码并不依赖于SpringAPIs。

  3、Spring不和现有的解决方案竞争,而是致力于将它们融合在一起。

  Spring的一个最大的目的就是使J2EE开发更加容易。同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(PlainOldJavaObject)对象提供企业级的服务。

Spring的基本思想

Spring的目标是简化Java应用开发,那么它是通过什么方式来实现这一目标的呢?前面我们说过DI和AOP是Spring的核心功能,更准确地说,Spring通过为DI和AOP这两种编程技术提供支持,来让应用更方便的进行开发。此外,Spring提倡基于POJO(PlainOldJavaObject)的编程模型,提供了针对企业开发且屏蔽重复代码的工具类。在开始正式进入代码编写之前,我们先了解Spring简化开发的几个基本思想。

DI

面向对象的程序通过一组对象之间相互通信来实现特定功能,这里的通信具体来说就是一个对象对另一个对象的方法调用或者属性访问。比如有一个BlogRespositry类负责将博客内容存储到数据库,一个BlogController负责解析前端的Web请求。BlogController接受到新建博客的请求之后,需要调用BlogRespositry的方法来保存博客内容。这里BlogRespositry就是BlogController的一个依赖,具体体现在BlogController会包含一个BlogRespositry类型的成员变量。

classBlogController{privateBlogRepositoryblogRepository;publicBlogController(){this.blogRepository=newBlogRepository();...}...}

在上面的代码中,BlogRespositry在构造函数中自己去创建BlogRepository类的实例。而使用依赖注入技术,则BlogRespositry的依赖(即BlogRepository类)是由外部实例化之后注入给它的。依赖注入也称为控制反转(IoC,InversionofControll)。当创建一个对象时,它所依赖的对象由外部传递给它,而非自己去创建所依赖的对象(向例子中这样通过new操作)。因此,也可以说在对象如何获取它的依赖对象这件事情上,控制权反转了。这便是控制反转和依赖注入这两个名字的由来了。

DI可以让对象之间的关系更加松耦合,而且会促使你使用面向接口编程,同时也让测试更加方便。如果现在对这个概念还不是太理解没关系,下一节中我们将基于代码实例来深入了解DI的工作原理。

AOP

面向切面编程(AspectOrientedProgramming,AOP)是一种







































北京专治白癜风医院哪家最好
哪家医院治疗白癜风



转载请注明:http://www.jiaju1314.com/lsqy/1183.html