`
- 浏览:
44818 次
- 性别:
- 来自:
上海
-
首先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对应阶段,不容易判断问题所在。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Spring 中 IoC 优点与缺点解析 IoC(Inversion of Control)是 Spring 框架中的一种设计模式,它的主要思想是将对象的创建和管理交给容器,从而解耦合对象之间的依赖关系。今天,我们将详细解析 IoC 的优点和缺点。 ...
3. **性能问题**:在某些特定情况下,Spring框架的引入可能会导致轻微的性能损失,尤其是在启动阶段。 ### 总结 SSH框架作为Java Web开发领域中非常流行的组合,每个框架都有其独特的优势和局限性。Struts通过MVC...
Struts、Spring 和 Hibernate 是Java Web开发中三大主流的开源框架,它们各自有着独特的功能和优缺点。在构建企业级应用程序时,理解这些框架的核心特性以及它们如何相互补充至关重要。 Struts 是一个基于MVC...
1. **依赖注入(DI)和面向切面编程(AOP):**Spring框架的核心是依赖注入和面向切面编程,极大地提高了代码的可重用性和可维护性。 2. **模块化:**Spring框架由多个模块组成,可以根据项目的实际需求选择使用哪些...
### Spring的优缺点及工作原理 #### Spring框架概述 Spring框架是Java平台上最受欢迎的企业级应用程序开发框架之一。它提供了一套全面的编程和配置模型,旨在简化企业级应用的开发。Spring的核心特性主要包括依赖...
Spring框架是另一种广泛应用的Java框架,它不仅仅是一个MVC框架,更是一个全面的后端解决方案,包括事务管理、AOP(面向切面编程)、DI等。Spring的优点在于其强大的IOC(Inversion of Control)和AOP功能,使代码...
Spring Data JPA的主要优点在于其高度的开发效率、成熟的语法结构以及与Spring框架的紧密集成。 1. **开发效率极高**: - Spring Data JPA通过提供自动化的 Repository 实现,减少了大量手动编写SQL和DAO层代码的...
Spring Shiro是将Shiro安全框架与Spring框架结合使用的一种模式。Shiro是一个强大且灵活的开源安全框架,提供了认证、授权、加密和会话管理等功能。通过与Spring框架的集成,Spring Shiro能够更好地适应Java应用的...
3. **AOP支持:** 面向切面编程(AOP)是Spring框架的另一大特色,它能够将横切关注点(如日志记录、权限检查等)从业务逻辑中分离出来,从而提高代码的整洁度和可维护性。 4. **广泛的社区支持:** Spring拥有庞大...
Spring框架的优点包括: * 灵活、可扩展、松散耦合的设计 * 提供了依赖注入和控制反转等功能 * 支持多种数据访问方式 * 支持面向方面编程 Spring框架的缺点包括: * 学习曲线较陡 * 配置较复杂 Spring的应用场景...
首先,Spring框架是Java企业级应用的基石,它提供了一个全面的编程和配置模型,旨在简化开发过程。学习Spring,你需要理解IoC(控制反转)和AOP(面向切面编程)的核心概念,以及Spring MVC、Spring Boot、Spring ...
### Struts、Hibernate与Spring框架剖析 #### 一、引言 随着信息技术的快速发展,Java Web开发领域中,Struts、Hibernate与Spring这三个框架因其在实际项目中的广泛应用而备受关注。本文将对这三个框架进行深入...
2. **依赖Spring生态**:如果不认同Spring框架的理念和技术栈,则不适合使用Spring Boot。 #### 四、Spring Boot框架搭建步骤 1. **开发工具选择**:本例使用IntelliJ IDEA 14.1.4版本。 2. **创建新项目**:选择...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java开发中广泛使用的MVC(Model-View-Controller)架构的三大支柱。这个框架集合提供了全面的企业级应用开发解决方案,帮助开发者高效地构建高性能、可维护的...
1. **学习成本**:Spring框架庞大,学习和掌握需要一定的时间。 2. **性能影响**:虽然轻量级,但在大型应用中可能需要考虑性能问题。 **Hibernate** Hibernate是一个流行的ORM框架,它的优点主要包括: 1. **对象...
Spring Boot 是一个基于 Java 语言的开源框架,用于快速构建基于 Spring 框架的应用程序。它提供了一个灵活的方式来构建生产级别的应用程序,具有优雅的设计、灵活的配置和简洁的编程模型。 1. Spring Boot 介绍 ...