在SSH框假中spring充当了管理容器的角色。我们都知道Hibernate用来做持久层,因
为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语
句。Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致
是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts
负责控制Service(业务逻辑处理类),从而控制了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框架在SSH中的核心作用是作为管理容器,它实现了Inversion of Control(IoC,控制反转)和Dependency Injection(DI,依赖注入)的概念。IoC意味着应用程序的控制权由容器接管,而不是由程序自身控制。DI则是...
在SSH架构中,Spring主要负责业务逻辑层和服务层。 1. **核心功能**: - **IoC(Inversion of Control)**:实现了依赖注入,使得开发人员能够更灵活地管理和配置对象间的依赖关系。 - **AOP(Aspect Oriented ...
"Spring Microservices in Action-Manning.pdf"则可能深入讨论Spring Cloud在构建微服务架构中的作用。Spring Cloud提供了一套工具集,用于快速实现服务发现、配置管理、断路器模式、智能路由、负载均衡、分布式会话...
#### 二、Spring框架的关键作用 1. **无缝整合**:Spring框架的一个显著特点是能够将不同的技术栈和服务层紧密地结合在一起,使得整体架构更为清晰和高效。它通过依赖注入机制实现了组件之间的解耦,同时通过面向切...
在Spring中,有五种主要的Bean作用域: 1. **Singleton作用域**: - Singleton是Spring默认的Bean作用域。这意味着,无论何时,只要Spring容器被初始化,它都会创建一个Bean实例,并将其缓存起来。后续对相同ID的...
**Spring与Hibernate集成详解** 在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全方位的轻量级应用框架,提供了强大的依赖注入、AOP(面向切面编程)以及各种服务管理功能。而...
本篇文章将深入探讨两种主要的作用域:singleton和prototype,并通过实例分析其用法和注意事项。 首先,`singleton`是Spring默认的作用域,意味着当Spring容器初始化时,对于每个具有`singleton`作用域的Bean,它只...
Spring Cloud 的主要特性包括: 1. **分布式/版本化配置**:Spring Cloud Config 提供了一个集中式的配置服务器,允许服务动态地获取和更新配置。这使得在分布式环境中管理和维护配置变得更加容易,支持配置的版本...
**2.1 Spring Cloud 的定位与作用** - **微服务治理框架**:Spring Cloud 是一系列框架的集合,旨在简化分布式系统的基础设施建设,如服务发现注册、配置中心、消息总线等。 - **分布式系统开发工具包**:Spring ...
2. Spring的模块结构:了解Spring的主要模块,如Core Container、Data Access/Integration、Web、AOP、Instruments等。 二、IoC(控制反转) 1. 依赖注入原理:深入理解依赖注入的概念,它是如何解决对象之间的耦合...
根据给定的信息,本文主要涉及的是Flex 4、BlazeDS 4.0、Spring 3.0以及Hibernate 2.5.2等技术的整合使用。这些技术都是早期非常流行的开发工具和技术栈,用于构建复杂的富互联网应用程序(RIA)。下面我们将详细探讨...
**Spring Ioc 实现原理详解** Spring Ioc(Inversion of Control,控制反转)是Spring框架的核心特性之一,它改变了传统应用程序中...在实际开发中,理解并熟练运用Spring Ioc,对于提升开发效率和质量具有重要作用。
以下是这些jar包的主要作用和相关知识点: 1. **spring-core.jar**:这是Spring框架的核心库,包含了IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)的基础实现。它提供了一些基本的...
首先,Spring框架的基础包主要包括以下几个部分: 1. **spring-core.jar**:这是Spring的核心库,包含了IoC容器和基本的工具类,如反射、资源加载、事件处理等。 2. **spring-beans.jar**:包含Bean工厂和IoC容器...
Spring Web模块和Spring Web MVC模块是Spring框架中的两个关键组成部分,它们在构建Web应用程序时起着至关重要的作用。 Spring Web模块(spring-web-5.2.3.RELEASE.jar)主要负责提供Web相关的功能支持,包括HTTP...
Spring Boot和Spring Cloud是现代Java开发中的两个关键框架,它们在构建微服务架构中起着至关重要的作用。Spring Boot作为Spring框架的一个子项目,旨在简化应用程序的创建和配置过程,而Spring Cloud则提供了全面的...
入门阶段主要是了解Spring Security的基本概念和配置方法。进阶阶段需要深入学习如何定制认证和授权流程、如何集成各种认证方式以及如何在实际项目中进行应用。高级阶段则涉及框架的原理深入、性能优化、安全漏洞的...
此外,Spring还支持Bean定义的继承,以及Bean作用域的设置,例如单例作用域和原型作用域,它们决定了Spring容器在每次请求时是否创建一个新的Bean实例。 综上所述,Spring入门涉及到的概念和知识点十分丰富,包括...
DispatcherServlet是Spring MVC的核心组件之一,它的主要作用是分发请求。当客户端发送请求到服务器时,DispatcherServlet会根据配置的HandlerMapping找到合适的控制器来处理请求,并返回相应的视图。 #### 3. ...
在本项目中,我们主要探讨的是如何利用Spring MVC和Spring Security框架构建一个基本的无数据库登录系统。Spring MVC是Spring框架的一部分,用于处理Web应用程序的请求-响应模型,而Spring Security则是一个强大的...