本文将在上文对云时代的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(Structs + Spring + Hibernate)组合不同的是,Spring不需要了,Hibernate由其简化版JPA替代,Structs则由Servlet代替,但同时由于Structs只是Servlet的”Fancy”版而已,所以它们之间可以互换。为什么是它们呢?主要有下面这四个原因:
- 能满足基本需求:Servlet提供的Web功能和JPA提供的数据存储功能对于大多数应用而言,能满足它们80%的需求,如果还有其它需求的话,完全可以按照他们自己的想法进行定制,无需被框架所局限。
- 学习成本低:首先,大家都应该知道,Servlet是非常简单易懂的,其次,JPA的核心功能也是易于理解的,虽然其某些功能还是比较复杂的,但是它们并不常用。
- 开发简单:在大多数情况下,Servlet和JPA都可以在Eclipse上通过插件直接进行调试,而且在逻辑上大多不绕弯子,特别是Servlet,基本上能做到“所见即所得”,这对开发而言是非常有帮助的。
- 基于标准:Servlet和JPA都是JCP的标准,这确保其的迁移性,这对应用而言,也是非常重要的。
本篇结束,我知道本篇会产生很多争议,也希望能从大家的评论吸取一些新的见解,所以期待大家的Comments,下篇将重点分析Servlet与JPA这个组合。
分享到:
相关推荐
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》 - **J2EE (Java 2 Platform, Enterprise Edition)**:是Sun ...
Spring框架的设计理念与设计模式 Spring作为现在最优秀的框架之一已被广泛的使用51CTO也曾经针对Spring框架中的JDBC应用做过 报道。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构...
《Expert-One-on-one J2EE Development Without EJB》是一本专为Java企业级应用开发者编写的书籍,旨在探讨如何在不使用Enterprise JavaBeans (EJB)的情况下进行J2EE开发。J2EE(Java 2 Platform, Enterprise ...
- **定义**:J2EE(Java 2 Platform, Enterprise Edition)是一套用于构建分布式多层 Web 应用程序的企业级 Java 平台标准。 - **发展历程**:从最初的 Java EE 1.0 到后续版本的不断演进,书中详细介绍了各个版本...
随后,Rod Johnson又推出了另一本经典之作《Expert one-on-one J2EE Development without EJB》,这本书进一步深化了Spring框架的理念,并在Java开发者中产生了深远的影响。 #### 三、Spring框架的体系结构 Spring...
在IT领域中,J2EE(Java 2 Platform, Enterprise Edition)是一种广泛使用的企业级应用开发平台,它基于Java语言,并为构建大型、分布式、多层次的网络应用提供了一整套规范和指导。EJB(Enterprise JavaBeans)是...
《Expert One-on-One J2EE Development Without EJB中文版》是一本专为Java EE开发者设计的书籍,旨在探讨如何在不依赖Enterprise JavaBeans (EJB)的情况下进行高效、灵活的J2EE应用开发。该书深入浅出地阐述了EJB...
- **Spring框架**:Spring是一个开源的应用程序框架,它提供了一种替代EJB的轻量级方法,尤其在依赖注入(DI)和面向切面编程(AOP)方面表现出色。 - **Hibernate**:作为持久层解决方案,Hibernate简化了数据库...
对于初学者来说,学习Spring之前必须打牢基础,包括但不限于Java基础知识、面向对象编程以及设计模式。这些是理解和运用Spring框架的重要前提。 - **Java基础知识**:理解Java语言的基础概念如类、对象、继承、封装...
J2EE.DEVELOPMENT.WITHOUT.EJB(中文),rod johnson作品,学习j2ee及spring不可错过的经典。
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
这时,初学者可以阅读 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》**:本书深入介绍了如何利用Spring框架构建高效的企业级应用,同时避免了EJB的复杂性。 #### 十、Spring框架的应用场景 - **Web开发**:构建高性能的Web...
《Expert One-on-One J2EE Development without EJB中文版 part10》这本书是Java开发领域的一本重要参考资料,尤其对于那些希望深入理解J2EE(Java 2 Platform, Enterprise Edition)开发但不依赖EJB(Enterprise ...