`

[转]Spring的优缺点

阅读更多
http://wangchm168.blog.163.com/blog/static/2313790720092310517585/

首先Spring 是一个框架,使用Spring并不代表代码质量的提高,就像盖房子选择用上海的地皮还是北京的地皮一样,房子质量与土地所在的城市无关,与房子的具体设计方案和选料有关。
使用Spring 等框架可以简化很多基础性的工作,配置好后可以方便构建业务应用。

框架使用多了会有局限的感觉,像小鸟被套在笼子里,无法飞出去,虽然在笼子里面吃喝不愁。目前编程的门槛越来越低,诸多开源框架广泛传播,几乎没有什么技术门槛,会配置就会编程,而一个好的DBA对软件性能会有很大提高,软件的核心逻辑最终会转移到对数据库的操作上,而且对目前从事的工作来讲,感觉技术的瓶颈越来越多的局限在对数据库的操作上,下一步要认真提高下了。

Spring的优势不言而喻:

  1. 提供了一种管理对象的方法,可以把中间层对象有效地组织起来。一个完美的框架“黏合剂”。

  2. 采用了分层结构,可以增量引入到项目中。

  3. 有利于面向接口编程习惯的养成。

  4. 目的之一是为了写出易于测试的代码。

  5. 非侵入性,应用程序对Spring API的依赖可以减至最小限度。

  6. 一致的数据访问介面。

  6. 一个轻量级的架构解决方案。

  对Spring的理解

  Spring致力于使用POJOs来构建应用程序。由框架提供应用程序的基础设施,将只含有业务逻辑的POJOs作为组件来管理。从而在应用程序中形成两条相对独立发展的平行线,并且在各自的抽象层面上延长了各自的生命周期。

  Spring的工作基础是Ioc。Ioc将创建对象的职责从应用程序代码剥离到了框架中,通常2中注入方式:setter 和 ctor参数。

  每个Bean定义被当作一个POJO(通过类名和JavaBean的初始属性或构造方法参数两种方式定义的Bean)。

http://wangchm168.blog.163.com/blog/static/2313790720092310517585/
  
Spring的核心在org.springframework.beans,更高抽象层面是BeanFactory. BeanFactory是一个非常轻量级的容器。

  关于可维护性的思考

  Spring之类的技术确实带来了应用系统的可维护性的提高吗?

  Ioc, AOP之类的技术,本质上都是将原本位于应用程序代码中"硬编码"逻辑,剥离出来放到了配置文件中(或者其他形式)。主流声音都是认为提高了应用程序的可维护性。

  但如果从以下方面观察,结合项目实际经验,个人感觉这些技术的应用大大降低了应用程序的可维护性,尤其是面对一个陌生的系统,或者项目人员变动频繁的时候。

  1. 中断了应用程序的逻辑,使代码变得不完整,不直观。此时单从Source无法完全把握应用的所有行为。

  2. 将原本应该代码化的逻辑配置化,增加了出错的机会以及额外的负担。

  3. 时光倒退,失去了IDE的支持。在目前IDE功能日益强大的时代,以往代码重构等让人头痛的举动越来越容易。而且IDE还提供了诸多强大的辅助功能,使得编程的门槛降低很多。通常来说,维护代码要比维护配置文件,或者配置文件+代码的混合体要容易的多。

  4. 调试阶段不直观,后期的bug对应阶段,不容易判断问题所在。
分享到:
评论

相关推荐

    Spring的优缺点及工作原理

    ### Spring的优缺点及工作原理 #### Spring框架概述 Spring框架是Java平台上最受欢迎的企业级应用程序开发框架之一。它提供了一套全面的编程和配置模型,旨在简化企业级应用的开发。Spring的核心特性主要包括依赖...

    Struts,Spring,Hibernate优缺点

    Struts、Spring 和 Hibernate 是Java Web开发中三大主流的开源框架,它们各自有着独特的功能和优缺点。在构建企业级应用程序时,理解这些框架的核心特性以及它们如何相互补充至关重要。 Struts 是一个基于MVC...

    Struts,Spring,Hibernate优缺点_fly.mht

    Struts,Spring,Hibernate优缺点_fly.mht

    strut spring hibernate 优缺点

    ### Struts, Spring, Hibernate 三大框架的优缺点分析 #### Struts框架 **优点:** 1. **组件模块化与灵活性:** Struts框架强调组件的模块化设计,这使得开发者可以根据项目的不同需求灵活地选择和组合这些组件。...

    Spring事务优缺点及使用详解.docx

    【Spring 事务管理详解】 一、事务简介 事务是数据库操作的基本单位,它确保一组SQL语句要么全部成功,要么全部失败,以维护数据的一致性。在MySQL中,事务通常涉及INSERT、UPDATE、SELECT和DELETE等操作。当操作...

    JAVA中spring介绍:JAVA spring的优缺点详解

    JAVA spring的优缺点详解

    Spring中IoC优点与缺点解析

    Spring 中 IoC 优点与缺点解析 IoC(Inversion of Control)是 Spring 框架中的一种设计模式,它的主要思想是将对象的创建和管理交给容器,从而解耦合对象之间的依赖关系。今天,我们将详细解析 IoC 的优点和缺点。 ...

    ssh框架优缺点 struts hibernate spring

    ### SSH框架:Struts、Hibernate、Spring 的优缺点分析 #### Struts **优点:** 1. **MVC模式的支持**:Struts框架遵循MVC(Model-View-Controller)设计模式,它将应用程序分为模型层、视图层和控制器层,这样的...

    struts spring hibernate 优缺点分析.docx

    以下是这三个框架的详细优缺点分析: **Struts** Struts是一个开源的MVC框架,主要用于构建Web应用程序。它的主要优点包括: 1. **开源性**:Struts作为Apache基金会的项目,其源代码公开,开发者可以深入了解其...

    mybatis-plus优缺点

    ### Mybatis-Plus优缺点详解 #### 一、框架介绍 Mybatis-Plus是一个针对MyBatis框架的增强工具包,旨在简化常见的CRUD(创建、读取、更新、删除)操作,提升开发效率。它在不改变原有MyBatis核心功能的基础上,...

    Spring Data JPA的优点和难点.pdf

    Spring Data JPA是Spring生态中的一个强大ORM框架,它极大地提高了Java开发者在处理数据库操作时的效率。Spring Data JPA的主要优点在于其高度的开发效率、成熟的语法结构以及与Spring框架的紧密集成。 1. **开发...

    SSH(Spring Struts Hibernate)的优缺点

    让我们详细分析一下SSH的优缺点。 **Struts** Struts作为一个MVC框架,具有以下优点: 1. **MVC架构**:Struts通过分离业务逻辑、视图和控制逻辑,使应用结构清晰,易于维护和扩展。 2. **Taglib库**:Struts提供...

    Struts,Spring,Hibernate优缺点.

    ### Struts、Spring、Hibernate 的优缺点分析 #### 一、Struts 框架 **优点:** 1. **实现 MVC 架构模式:**Struts 通过 Model-View-Controller (MVC) 设计模式,使得业务逻辑与表示层分离,便于维护和扩展。 2. ...

    ssh框架优缺点

    本文将深入探讨SSH框架中的Struts、Spring、Hibernate各自的优缺点。 #### Struts框架 **优点:** 1. **实现了MVC设计模式:**Struts框架很好地支持了MVC(Model-View-Controller)设计模式,使得开发者能够更加...

    SSH框架的优缺点

    下面我们将深入探讨SSH框架的优缺点。 **一、Struts2** Struts2是基于MVC设计模式的Web应用框架,它继承了Struts1的优点并解决了其不足。其主要优点包括: 1. **灵活的拦截器机制**:Struts2使用拦截器来处理请求,...

    java三大框架学习方法,优缺点,简介

    Spring的优缺点包括:优点是灵活性高,支持多种集成,社区活跃,文档丰富;缺点是学习曲线较陡,特别是对于初学者来说,需要投入大量时间去理解和掌握。 Struts是MVC(Model-View-Controller)设计模式的实现,主要...

    java打包jar方案的优缺点分析及解决方案

    然而,它的主要缺点是生成的JAR文件可能非常大,可能导致内存溢出问题,尤其是在DOS环境下运行。此外,过多的库可能导致类冲突。 2. **直接用MyEclipse的Export导出JAR包** MyEclipse的直接导出功能生成的JAR文件...

    三大框架的优缺点

    然而,Struts1存在一些缺点,比如Action类过于庞大,难以管理和调试,且对依赖注入(DI)支持不够完善。Struts2在Struts1的基础上进行了改进,引入了拦截器(Interceptor)机制,增强了灵活性,但同时也增加了复杂性...

    STRUTS2优缺点

    ### STRUTS2 优缺点分析 #### 一、STRUTS2 优点概述 **1. Action 实现灵活性:** - **STRUTS2 的 Action 设计更灵活:**与 STRUTS1 中 Action 必须继承自 `Action` 类不同,STRUTS2 允许 Action 作为 POJO(Plain...

Global site tag (gtag.js) - Google Analytics