`

spring 的优点和缺点

阅读更多

摘自:http://www.zhenhua.org/article.asp?id=573

首先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)。

  Spring的核心在org.springframework.beans,更高抽象层面是BeanFactory. BeanFactory是一个非常轻量级的容器。

  关于可维护性的思考

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

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

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

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

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

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

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

分享到:
评论

相关推荐

    Spring中IoC优点与缺点解析

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

    Spring的优缺点及工作原理

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

    Spring Data JPA的优点和难点.pdf

    Spring Data JPA的主要优点在于其高度的开发效率、成熟的语法结构以及与Spring框架的紧密集成。 1. **开发效率极高**: - Spring Data JPA通过提供自动化的 Repository 实现,减少了大量手动编写SQL和DAO层代码的...

    strut spring hibernate 优缺点

    ### Struts, Spring, ...综上所述,Struts、Spring和Hibernate作为三大经典Web开发框架,各自具备独特的优点与局限性。开发者应根据项目的具体需求和技术背景来合理选择合适的框架组合,以达到最佳的开发效果。

    Struts,Spring,Hibernate优缺点

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

    ssh框架优缺点 struts hibernate spring

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

    struts spring hibernate 优缺点分析.docx

    Struts、Spring和Hibernate是Java开发中常用的三个框架,它们分别在MVC模式的不同层面提供支持。以下是这三个框架的详细优缺点分析: **Struts** Struts是一个开源的MVC框架,主要用于构建Web应用程序。它的主要...

    spring cache

    spring cacke spring cacke

    Spring Boot参考手册 中文版

    * Maven/Gradle:Spring Boot 支持 Maven 和 Gradle 两种构建工具,提供了一个灵活的方式来管理依赖项和构建应用程序。 9. Spring Boot 的资源 Spring Boot 的资源包括: * 官方文档:Spring Boot 的官方文档...

    SpringCloud和Dubbo的详细解释和比较

    SpringCloud和Dubbo都是在Java社区中广泛使用的技术栈,它们被设计用来解决微服务架构中的一些核心问题,如服务发现、配置管理、负载均衡、容错机制等。它们之间的选择依赖于特定的业务需求、技术栈、团队经验等因素...

    springcloud学习笔记.pdf

    Spring Cloud 学习笔记 本笔记主要介绍了从单体架构到微服务架构的演变过程,以及 Spring Cloud 中的微服务架构搭建。下面是本笔记的详细知识点总结: 一、单体架构 单体架构是指整个系统只有一个工程,打包往往...

    Java Spring面试题

    Spring框架的设计理念是基于依赖注入、控制反转和面向方面编程等概念。 Spring框架的组成 Spring框架由多个模块组成,包括核心容器、AOP、Web模块、数据访问模块等。其中,核心容器是Spring框架的核心部分,提供了...

    Spring理论知识.xmind

    以思维导图的形式对Spring的基础理论知识进行一个汇总,思维导图中包含Spring简介、背景、特征、特点、优点、缺点及其Spring版本迭代做了详细介绍。

    实验一 Springioc基本操作.docx

    Spring IOC 的优点包括: * 低耦合:Spring IOC 使得对象之间的依赖关系变得更加灵活和松散。 * 高内聚:Spring IOC 使得对象之间的依赖关系变得更加紧凑和有序。 * 可重用性:Spring IOC 使得对象变得更加可重用...

    SSH(Spring Struts Hibernate)的优缺点

    SSH,即Spring、Struts和Hibernate,是Java开发中一种常见的技术栈,用于构建企业级Web应用程序。这个组合提供了模型-视图-控制器(MVC)架构的支持,以及数据库访问和业务逻辑处理的能力。让我们详细分析一下SSH的...

    Struts,Spring,Hibernate优缺点.

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

    想学习的看过来了spring4.0、springboot、springcloud详细视频课程(硅谷)

    2.spring boot的优点 2 3.环境搭建 3 3.1 添加依赖 3 3.2 创建目录和配置文件 4 3.3 创建启动类 5 3.4 案例演示 5 4 . 配置介绍 6 4.1 Spring boot 配置文件 6 4.2 配置文件内容 7 4.3属性使用 9 5 . ...

    spring-roo-docs

    ### SpringRoo-ReferenceDocumentation 1.2.5.RELEASE 关键知识点解析 ...以上是对SpringRoo-ReferenceDocumentation 1.2.5.RELEASE的关键知识点总结,希望能帮助读者更好地理解和使用SpringRoo。

Global site tag (gtag.js) - Google Analytics