日期:2014-05-19  浏览次数:20739 次

【转】spring框架是否提高了可维护性?
首先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对应阶段,不容易判断问题所在。

------解决方案--------------------
这个。。。
------解决方案--------------------
发展 11111111
------解决方案--------------------
用mvc还好,不过,ssh麻烦

现在很多都是注解了
------解决方案--------------------
正在再次看SPRING官方文档,第一次接触SPRING文档时一扫而过,觉得很简单。。。觉得所谓的IOC就是把对象的依赖由硬编码改为XML配置,所谓的AOP就是在方法调用前后增加一层代理JDK自带的代理功能就可以了,可以想到的后面就直接PASS了不怎么学习SPRING了,所以很少用SPRING....像很多人说的,加入日志处理或者权限控制,我更喜欢在硬编码时就体现了。。。。。。。。。现在再次看它时才觉得主要是它的灵活性。。。。IOC只是核心,AOP是基于IOC,事务管理是基于AOP的。。。使用AOP或者事务这些功能的主要目的是为了让业务代码更加简洁,比如日志的记录,权限的控制,事务管理这些本就不是业务流程的功能让其解藕,还是很不错的
------解决方案--------------------
没有一种适合于所有项目的框架

不同项目需求 不同开发规范和要求 就会使用不同的技术和框架

spring带来的更多是思想上的升华吧
------解决方案--------------------
楼主说的也不是没有道理了,不过,毕竟,ssh的出现也有他的有点的。在我们做项目的过程中,我们也只是,选择最好的解决方案了。不是吗?
------解决方案--------------------
探讨
首先Spring 是一个框架,使用Spring并不代表代码质量的提高,就像盖房子选择用上海的地皮还是北京的地皮一样,房子质量与土地所在的城市无关,与房子的具体设计方案和选料有关。
使用Spring 等框架可以简化很多基础性的工作,配置好后可以方便构建业务应用。

框架使用多了会有局限的感觉,像小鸟被套在笼子里,无法飞出去,虽然在笼子里面吃喝不愁。目前编程的门槛越来越低,诸多开源框架广泛传播,……

------解决方案--------------------
...靠 我写之前还没人回复 写完这么多人回复了...
------解决方案--------------------
探讨

用了SSH的项目,从来没有带来维护的简单和可扩展性的提高,反倒是为了学习这些框架付出了更多的时间成本,到头来维护更加麻烦。

谁敢说维护配置文件比维护代码容易的?这个配置文件可不是简单的寥寥三行的数据库配置文件!

------解决方案--------------------
同感!楼主说的太对了,spring害死人,用这个框架就是戴着镣铐跳舞。

个人也推崇jstl,简单明了。
------解决方案--------------------
探讨
引用:

用了SSH的项目,从来没有带来维护的简单和可扩展性的提高,反倒是为了学习这些框架付出了更多的时间成本,到头来维护更加麻烦。

谁敢说维护配置文件比维护代码容易的?这个配置文件可不是简单的寥寥三行的数据库配置文件!


所以催生出注解式的配置 要不然那么多配置文件确实也挺麻烦

------解决方案--------------------