`
liuxinglanyue
  • 浏览: 562590 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java Development Without Spring(2) – Spring的不足与云时代的编程模式

阅读更多

本文将在上文对云时代的Java应用进行分析的基础上,来深入剖析Spring的不足,并介绍一种在云时代更适用的编程模式。

Spring的不足

当然Spring框架在设计上有非常多的特色和优越性,特别是与过去的EJB2相比,但是我认为Spring有一个非常大的不足,那就是概念过于抽象,对于熟悉Spring的人都应该知道,Spring最核心概念莫过于IoC(Inversion of control,控制反转)和AOP(Aspect Oriented Programming,面向方面编程)这两个,而且这两个概念在刚推出的时候也非常轰动和创新,但是有一点却不容忽视,那就是其实这两个概念非常抽象,使其非常难以理解,我个人学习了很长时间,才稍微掌握大概,虽然这只是我的个人经历,但是我认为我的智商和学识在Java程序员中决定属于前30%的,那么这样完全有理由可以断定这两个概念对于大多数Java程序员而言过于抽象,而这直接导致在下面这两个问题:首先是学习难度的加大,原因非常简单,那就是抽象的东西都比较难以理解,虽然Spring的确比EJB2简单点;其次是开发难度的加大,因为在运行的流程上,Spring框架会构建很多Proxy(代理),使得整个流程饶了很多弯,不是很直接,所以在写代码的时候,会带来一定的困扰,同时这也将会加大调试方面的难度。

还有一点不足,就是Spring的功能太过于强大,就像“瑞士军刀”那样,从Web、MVC、事务、JDBC、DAO、ORM到Web Service无所不包,虽然方便了部分用户,而且在运行时不会造成很大的开销,但是对于大多数用户而言,其实最多只需要一两个功能,而Spring这样强大的设计有点冗余的感觉。

云时代的编程模式

说是云时代的编程模式,其实只是一种旧有模式的简化而已,它就是Servlet与JPA这一组合,和之前SSH(Struts + Spring + Hibernate)组合不同的是,Spring不需要了,Hibernate由其简化版JPA替代,Struts则由Servlet代替,但同时由于Struts只是Servlet的”Fancy”版而已,所以它们之间可以互换。为什么是它们呢?主要有下面这四个原因:

  1.  
    1. 能满足基本需求:Servlet提供的Web功能和JPA提供的数据存储功能对于大多数应用而言,能满足它们80%的需求,如果还有其它需求的话,完全可以按照他们自己的想法进行定制,无需被框架所局限。
    2. 学习成本低:首先,大家都应该知道,Servlet是非常简单易懂的,其次,JPA的核心功能也是易于理解的,虽然其某些功能还是比较复杂的,但是它们并不常用。
    3. 开发简单:在大多数情况下,Servlet和JPA都可以在Eclipse上通过插件直接进行调试,而且在逻辑上大多不绕弯子,特别是Servlet,基本上能做到“所见即所得”,这对开发而言是非常有帮助的。
    4. 基于标准:Servlet和JPA都是JCP的标准,这确保其的迁移性,这对应用而言,也是非常重要的。

 

分享到:
评论
2 楼 xiaoye4188 2011-01-12  
框架的复杂不代表都要学呀 你可以只用spring的IOC
1 楼 speedoops 2010-12-21  
JAVA上的各种框架都很炫,确实非常炫,以至于大家都认为用JAVA开发才够高雅,可是,复杂的构架是不是增加了软件的复杂性、增加了学习成本

相关推荐

    多图详解Spring框架的设计理念与设计模式

    Spring 源自 Rod Johnson 的著作《Expert one to one J2EE design and development》和《Expert one-to-one J2EE Development without EJB》,这两本书挑战了当时主流的 J2EE 开发模式,主张更轻便、高效和实用的...

    Expert One on One J2EE Development Without EJB

    ### 专业知识点解析:《Expert One on One J2EE Development Without EJB》 #### 标题解析:《Expert One on One J2EE Development Without EJB》 - **J2EE (Java 2 Platform, Enterprise Edition)**:是Sun ...

    多图详解Spring框架的设计理念与设计模式【技术文档】

    Spring框架的设计理念与设计模式 Spring作为现在最优秀的框架之一已被广泛的使用51CTO也曾经针对Spring框架中的JDBC应用做过 报道。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构...

    Expert-One-on-one J2EE Development Without EJB.pdf

    《Expert-One-on-one J2EE Development Without EJB》是一本专为Java企业级应用开发者编写的书籍,旨在探讨如何在不使用Enterprise JavaBeans (EJB)的情况下进行J2EE开发。J2EE(Java 2 Platform, Enterprise ...

    J2EE程序员必读书籍:Expert One-on-One J2EE Development without EJB

    - **定义**:J2EE(Java 2 Platform, Enterprise Edition)是一套用于构建分布式多层 Web 应用程序的企业级 Java 平台标准。 - **发展历程**:从最初的 Java EE 1.0 到后续版本的不断演进,书中详细介绍了各个版本...

    JAVA 中的Spring框架介绍包括起源、体系结构、核心部分、特点等

    随后,Rod Johnson又推出了另一本经典之作《Expert one-on-one J2EE Development without EJB》,这本书进一步深化了Spring框架的理念,并在Java开发者中产生了深远的影响。 #### 三、Spring框架的体系结构 Spring...

    .J2EE.DEVELOPMENT.WITHOUT.EJB 英文版

    在IT领域中,J2EE(Java 2 Platform, Enterprise Edition)是一种广泛使用的企业级应用开发平台,它基于Java语言,并为构建大型、分布式、多层次的网络应用提供了一整套规范和指导。EJB(Enterprise JavaBeans)是...

    expert+one-on-one+j2ee+development+without+ejb中文版.rar

    《Expert One-on-One J2EE Development Without EJB中文版》是一本专为Java EE开发者设计的书籍,旨在探讨如何在不依赖Enterprise JavaBeans (EJB)的情况下进行高效、灵活的J2EE应用开发。该书深入浅出地阐述了EJB...

    Expert one on one J2EE development without EJB.pdf

    - **Spring框架**:Spring是一个开源的应用程序框架,它提供了一种替代EJB的轻量级方法,尤其在依赖注入(DI)和面向切面编程(AOP)方面表现出色。 - **Hibernate**:作为持久层解决方案,Hibernate简化了数据库...

    对于Spring初学者的学习建议

    对于初学者来说,学习Spring之前必须打牢基础,包括但不限于Java基础知识、面向对象编程以及设计模式。这些是理解和运用Spring框架的重要前提。 - **Java基础知识**:理解Java语言的基础概念如类、对象、继承、封装...

    J2EE.DEVELOPMENT.WITHOUT.EJB(中文)

    J2EE.DEVELOPMENT.WITHOUT.EJB(中文),rod johnson作品,学习j2ee及spring不可错过的经典。

    Spring 实践(Spring in Practice).pdf版本

    Spring was originally ...That Spring simplifies development without itself being simple isn’t paradoxical. Tools that simplify work don’t themselves have to be simple to learn. IDEs are a case in point

    对于Spring初学者的学习建议借鉴.pdf

    这时,初学者可以阅读 Rod Johnson 的三本经典名著,分别是:Expert one on one J2ee design and development、Expert one on one J2ee without EJB 和 Professional Java Development with SpringFramework。...

    Expert_One-on-One_J2EE_Development_without_EJB中文版 part10

    《Expert One-on-One J2EE Development without EJB中文版 part10》这本书是Java开发领域的一本重要参考资料,尤其对于那些希望深入理解J2EE(Java 2 Platform, Enterprise Edition)开发但不依赖EJB(Enterprise ...

Global site tag (gtag.js) - Google Analytics