标签:
Spring是一个开源的轻量级Java SE(Java 标准版本号)/Java EE(Java 企业版本号)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。
而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。
所以开发一个应用除了要开发业务逻辑之外,最多的是关注怎样使这些对象协作来完毕所需功能,并且要低耦合、高内聚。
业务逻辑开发是不可避免的,那假设有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系。
可能有人说了。比方“抽象工厂、工厂方法设计模式”不也能够帮我们创建对象。“生成器模式”帮我们处理对象间的依赖关系,不也能完毕这些功能吗?但是这些又须要我们创建还有一些工厂类、生成器类,我们又要另外管理这些类。添加了我们的负担,假设能通过配置方式来创建对象,管理对象之间依赖关系。我们不须要通过工厂和生成器来创建及管理对象之间的依赖关系,这样我们是不是降低了很多工作,加速了开发。能节省出很多时间来干其它事。Spring框架刚出来时主要就是来完毕这个功能。
Spring框架除了帮我们管理对象及其依赖关系,还提供像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力,还能帮我们管理最头疼的数据库事务。它本身提供了一套简单的JDBC訪问实现,还能与第三方数据库訪问框架集成(如Hibernate、JPA)。与各种Java EE技术整合(如Java Mail、任务调度等等),提供一套自己的web层框架Spring MVC、并且还能很简单的与第三方web框架集成。
从这里我们能够觉得Spring是一个超级粘合平台,除了自己提供功能外,还提供粘合其它技术和框架的能力,从而使我们能够更自由的选择究竟使用什么技术进行开发。并且无论是JAVA SE(C/S架构)应用程序还是JAVA EE(B/S架构)应用程序都能够使用这个平台进行开发。
让我们来深入看一下Spring究竟能帮我们做些什么?
2、 Spring 能帮我们做什么
Spring除了不能帮我们写业务逻辑,其余的差点儿什么都能帮助我们简化开发:
传统程序开发,创建对象及组装对象间依赖关系由我们在程序内部进行控制,这样会加大各个对象间的耦合,假设我们要改动对象间的依赖关系就必须改动源码,又一次编译、部署。而假设採用Spring,则由Spring依据配置文件来进行创建及组装对象间依赖关系,仅仅须要改配置文件就可以,无需又一次编译。
所以。Spring能帮我们依据配置文件创建及组装对象之间的依赖关系。
当我们要进行一些日志记录、权限控制、性能统计等时,在传统应用程序其中我们可能在须要的对象或方法中进行,并且比方权限控制、性能统计大部分是反复的,这样代码中就存在大量反复代码,即使有人说我把通用部分提取出来,那必定存在调用还是存在反复,像性能统计我们可能仅仅是在必要时才进行,在诊断完毕后要删除这些代码。还有日志记录,比方记录一些方法訪问日志、数据訪问日志等等,这些都会渗透到各个訪问方法中。还有权限控制。必须在方法运行開始进行审核,想想这些是多么可怕并且是多么无聊的工作。
假设採用Spring,这些日志记录、权限控制、性能统计从业务逻辑中分离出来,通过Spring支持的面向切面编程。在须要这些功能的地方动态加入这些功能。无需渗透到各个须要的方法或对象中。有人可能说了,我们能够使用“代理设计模式”或“包装器设计模式”,你能够使用这些。但还是须要通过编程方式来创建代理对象。还是要耦合这些代理对象,而採用Spring 面向切面编程能提供一种更好的方式来完毕上述功能。一般通过配置方式,并且不须要在现有代码中加入不论什么额外代码。现有代码专注业务逻辑。
所以,Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
在传统应用程序其中,我们怎样来完毕数据库事务管理?须要一系列“获取连接,运行SQL。提交或回滚事务,关闭连接”,并且还要保证在最后一定要关闭连接,多么可怕的事情,并且也很无聊;假设採用Spring。我们仅仅需获取连接,运行SQL。其它的都交给Spring来管理了,简单吧。所以,Spring能很简单的帮我们管理数据库事务。
Spring还能与第三方数据库訪问框架(如Hibernate、JPA)无缝集成,并且自己也提供了一套JDBC訪问模板,来方便数据库訪问。
Spring还能与第三方Web(如Struts、JSF)框架无缝集成,并且自己也提供了一套Spring MVC框架。来方便web层搭建。
Spring能方便的与Java EE(如Java Mail、任务调度)整合。与很多其它技术整合(比方缓存框架)。
Spring能帮我们做这么多事情。提供这么多功能和与那么多主流技术整合,并且是帮我们做了开发中比較头疼和困难的事情,那可能有人会问,难道仅仅有Spring这一个框架,没有其它选择?当然有,比方EJB须要依赖应用server、开发效率低、在开发中小型项目是宰鸡拿牛刀。尽管发展到如今,EJB已经比較好用了。但还是比較笨重还须要依赖应用server等。那为何须要使用Spring。而不是其它框架呢?让我们接着往下看。
3、 为何须要 Spring
(1)首先阐述几个概念
应用程序:是能完毕我们所须要功能的成品,比方购物站点、OA系统。
(2)为什么须要 Spring 及 Spring 的长处
并且核心JAR包很小,Spring3.0.5不到1M,并且不须要依赖不论什么应用server。能够部署在不论什么环境(Java SE或Java EE)。
4、 怎样学好 Spring
要学好Spring不能急,一定要把基础打牢。基础坚固了,学起来就会很快。这就是磨刀不误砍柴工。
标签:
原文地址:http://www.cnblogs.com/mengfanrong/p/5177321.html