`
afterglow
  • 浏览: 76587 次
  • 性别: Icon_minigender_1
  • 来自: 襄樊
社区版块
存档分类
最新评论

对Spring好处的简单理解

阅读更多
在SSH框假中spring充当了管理容器的角色,Spring 可以大大降低耦合。
首先耦合说白了就是类(也可以大到功能)与类之间的关联程度,关联越大,你的维护成本就越高,因为你改其中一个类,就很可能要去改和它关联的其他类,所以在设计的时候需要考虑清楚,尽量做到松散耦合,这时候就需要Spring了。

struts负责控制Service(业务逻辑处理类)也就是C,从而控制了Service的生命周期,这样层与层之间的依赖很强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正是用在此处。

Spring的Ioc(控制反转和依赖注入)
     控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控 
     依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注入到组件之中 。
   从上面我们不难看出:从头到尾Action仅仅是充当了Service的控制工具,这些具体的业务方法是怎样实现的,他根本就不会管,也不会问,他只要知道这些业务实现类所提供的方法接口就可以了。而在以往单独使用Struts框架的时候,所有的业务方法类的生命周期,甚至是一些业务流程都是由Action来控制的。层与层之间耦合性太紧密了,既降低了数据访问的效率又使业务逻辑看起来很复杂,代码量也很多。,Spring容器控制所有Action对象和业务逻辑类的生命周期,由于上层不再控制下层的生命周期,层与层之间实现了完全脱耦,使程序运行起来效率更高,维护起来也方便。

  使用Spring的第二个好处(AOP应用): 这个不太理解。
    事务的处理:
   在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch 来完成,而在Spring中。Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由Spring容器来管理,大大减少了程序员的代码量,也对事务有了很好的管理控制。Hibernate中也有对事务的管理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。而Spring对SessionFactory配置也进行了整合,不需要在通过hibernate.cfg.xml来对SessionaFactory进行设定。这样的话就可以很好的利用Sping对事务管理强大功能。避免了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的Try/Catch操作。这些也就是Spring中的AOP(面向切面编程)机制很好的应用。一方面使开发业务逻辑更清晰、专业分工更加容易进行。另一方面就是应用Spirng  AOP隔离降低了程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代码重用度 。
分享到:
评论

相关推荐

    Spring容器的通俗理解及简单写法

    通过理解并掌握Spring容器的工作原理,开发者可以更有效地利用Spring框架,提高代码的可测试性、可维护性和可扩展性。在实践中,Spring的IoC容器可以帮助我们编写出更加灵活和模块化的代码,从而提升整个应用的质量...

    spring MVC简单示例

    这个"spring MVC简单示例"是为了帮助初学者理解Spring MVC的基本工作原理和配置,通过实践这个例子,你可以了解到如何创建一个简单的Controller、配置视图解析器并建立一个基本的请求处理流程。随着对Spring MVC的...

    spring vue简单示例

    在本教程中,我们将探讨如何使用Spring Boot和Vue.js构建一个简单的Web应用程序。Spring Boot是Java领域的一个流行框架,用于简化Spring应用的初始搭建以及开发过程。Vue.js则是一款轻量级的前端JavaScript框架,以...

    spring boot 简单案例下载

    在“spring boot 简单案例下载”中,我们可以推测这是一个包含了一些基本的 Spring Boot 示例项目的压缩包。这些示例可能是为了帮助初学者理解和学习 Spring Boot 的核心特性而准备的。下面,我们将深入探讨 Spring ...

    spring一些简单的例子

    在这个名为"spring一些简单的例子"的压缩包中,你可能会找到一系列帮助初学者理解并掌握Spring框架基础知识的代码示例。以下是一些相关的知识点和详细说明: 1. **依赖注入(Dependency Injection)**:Spring的...

    SpringIOC流程简单理解

    SpringIOC简单流程梳理

    spring 的简单例子工程适合初学者

    这个"spring 的简单例子工程"是为了帮助初学者快速理解和入门 Spring 框架。 **数据库连接与Spring** 在 Spring 中,数据库连接通常通过 JDBC(Java Database Connectivity)或者 ORM(Object-Relational Mapping...

    spring框架简单模板

    这个"spring框架简单模板"可能是指一个基础的、用于快速搭建Spring项目的小型示例或者代码模版,旨在帮助初学者理解并快速上手Spring框架的核心功能。 Spring框架的核心特性包括依赖注入(Dependency Injection,DI...

    spring 的简单小测试

    这个“spring 的简单小测试”很可能是为了帮助开发者理解和实践Spring的基本概念和功能。 首先,Spring的核心特性之一是依赖注入(Dependency Injection,简称DI)。依赖注入允许对象之间的依赖关系被外部容器管理...

    spring简单的缓存

    本示例将聚焦于“Spring简单的缓存”实现,帮助开发者了解如何在Spring框架中集成和使用缓存功能。 Spring框架提供了强大的缓存抽象,支持多种缓存机制,如 EhCache、Redis、Hazelcast 和 Infinispan 等。在Spring...

    IDEA中使用Spring的简单入门(加小案例)

    为了更好地理解Spring,你需要熟悉Spring的核心概念,如依赖注入(DI)。DI允许你在不手动创建对象的情况下管理对象的生命周期,而是由Spring容器负责。例如,在`HelloController`中,如果需要其他服务,可以使用`@...

    简单spring aop 例子

    现在,我们来看如何创建一个简单的Spring AOP例子: 1. **定义切面(Aspect)**:切面是包含通知(Advice)和切入点(Pointcut)的类。通知定义了要执行的逻辑,切入点定义了何时执行。例如,我们可以创建一个名为`...

    Spring最简单工程例子

    本教程将深入探讨Spring最简单的工程实例,旨在帮助初学者快速理解并上手Spring框架。 首先,Spring框架的核心特性是依赖注入(Dependency Injection,DI),它允许开发者在运行时通过配置来管理对象及其相互之间的...

    spring源码, 可以很好的学习spring源码, 对spring更深入理解

    通过学习Spring的源码,开发者可以更深入地理解其设计理念和实现机制,提升自己的编程技能。本文将针对Spring框架的关键组件和核心概念进行详细的解释。 首先,Spring的核心是依赖注入(Dependency Injection,DI)...

    spring-security简单demo

    这个"spring-security简单demo"应该是为了帮助开发者理解如何在Spring Boot应用中集成和配置Spring Security的基本功能。下面,我们将深入探讨Spring Security的核心概念和在这个示例中可能涉及到的关键点。 1. **...

    spring 事务管理的理解

    综上所述,Spring的事务管理为开发者提供了强大且灵活的工具来处理数据库事务,无论是简单的应用还是复杂的分布式系统,都能游刃有余。理解并熟练掌握Spring事务管理,对于提升应用程序的稳定性和可靠性至关重要。在...

    一步步深入理解Spring内部原理-带源码

    8. **SpringBoot与Spring的关系**:SpringBoot是基于Spring框架的快速开发工具,它简化了Spring应用的初始设置,通过自动配置和起步依赖使得开发变得更加简单。 9. **SpringMVC**:作为Spring框架的一部分,...

    Spring框架的简单实现

    我们从一个简单的容器开始,一步步的重构,最后实现一个基本的Spring框架的雏形,为了帮助我们更加深入的理解Spring的IoC的原理和源码。 详细内容见博文: 【SSH进阶之路】一步步重构容器实现Spring框架——从一个...

    spring的一个简单的例子

    Spring 框架是Java开发中的一个核心...以上是对"spring的一个简单的例子"可能包含的内容的详尽解读,这个压缩包为初学者提供了一个基础的Spring应用实践,通过学习和实践,可以帮助理解Spring的核心概念和工作原理。

    简单Spring容器实现

    本主题将深入探讨“简单Spring容器实现”,基于提供的标签“源码”和“工具”,我们将聚焦于Spring容器的原理及其简易实现。下面,我们先来理解Spring容器的核心概念,然后逐步探索其内部机制,并通过一个名为...

Global site tag (gtag.js) - Google Analytics