`

spring的工作机制以及spring的优势

阅读更多
spring的工作机制
1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet将请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。

为什么要用spring呢?
AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 AOP 后,公共服务(比如日志、持久性、事务等)就可以分解成切面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。

IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词倒置所表明的,IOC 就像反过来的 JNDI。没有使用一堆抽象工厂、服务定位器、单例(singleton)和直接构造(straight construction),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。

Spring既是一个AOP框架,也是一个IOC容器。 Spring 最好的地方是它有助于替换对象。有了 Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象),就可以很容易地在需要时替换具有类似接口的协作对象。
分享到:
评论

相关推荐

    Spring 核心机制(依赖注入)

    ### Spring核心机制——依赖注入详解 #### 一、引言 Spring框架作为一款优秀的轻量级Java应用开发框架,其核心理念之一就是依赖注入(Dependency Injection, DI)。依赖注入不仅能够帮助开发者降低代码间的耦合度...

    Spring 动态模型(Spring Dynamic Modules)参考指南

    **Spring Dynamic Modules (Spring DM)** 是一款由Spring框架和OSGi平台相结合的产品,旨在将Spring框架的强大功能和OSGi平台的模块化优势结合起来。Spring DM 允许开发者透明地导出和导入OSGi服务,并进行生命周期...

    spring 4.3.14(全)最新的spring4正式版

    6. **Java 8支持**:虽然Spring 4.3.14不强制要求使用Java 8,但仍然兼容了Java 8的新特性,如Lambda表达式和日期时间API,使得开发者能充分利用新语言特性的优势。 7. **性能优化**:在4.3.14版本中,Spring团队对...

    官方源码 spring-framework-5.3.4.zip

    通过分析源码,我们可以更好地理解其设计模式、工作原理以及如何优化自己的代码。 1. **模块结构** Spring Framework 5.3.4包含多个核心模块,如Core Container(核心容器)、Data Access/Integration(数据访问/...

    spring4.0框架demo

    2. WebSocket支持:Spring 4.0引入了对WebSocket协议的支持,提供了更高效、实时的通信机制,为Web应用带来了新的交互体验。 3. 改进的类型安全:在Spring 4.0中,依赖注入(DI)更加类型安全,降低了因配置错误...

    spring3.0,ssh

    描述中的"org.springframework.oxm-3.1.0.M2"指的是Spring Object/XML Mapping模块,它提供了多种XML到Java对象和反之的转换机制,如JAXB、Castor、XML Beans等。"org.springframework.spring-library-3.1.0.M2.lib...

    spring cloud视频教程

    - 学习 Spring Boot 的基本概念和优势,它是 Spring Cloud 的基础。 - 掌握创建第一个 Spring Cloud 项目的步骤。 2. **Eureka 服务注册与发现**: - Eureka 作为服务注册中心的角色,如何实现服务提供者和服务...

    OSGI整合Spring、Mybatis、Spring MVC实现一个登录应用案例

    总的来说,这个案例展示了OSGI的模块化优势,以及如何将Spring、Mybatis和Spring MVC集成到OSGI环境中,构建一个可维护、可扩展的登录应用。通过实践这样的案例,开发者可以更好地掌握这些技术在企业级开发中的应用...

    30 道 Spring Cloud 面试题及答案.docx

    Spring Cloud 面试题及答案 以下是对 Spring Cloud ...以上是对 Spring Cloud 相关知识点的详细解释,包括 Spring Cloud 的概念、使用 Spring Cloud 的优势、服务注册和发现、负载平衡、Hystrix 和 Netflx Feign 等。

    SpringCloud面试题及答案.pdf

    SpringBoot主要是为了简化Spring应用的初始搭建以及后续开发过程,通过约定优先配置的原则,减少了配置文件的编写工作,使得开发者能够更快地构建出单个微服务。 - **SpringCloud定位** SpringCloud专注于解决多...

    Java EE 框架整合 开发入门到实战-Spring+Spring MVC+MyBatis微课版复习笔记

    下面将详细介绍这些框架的核心概念、模块组成、实例化Bean的方式以及依赖注入的机制和优势。 Spring框架核心组成: - 核心容器(Core Container):包括Spring的核心模块,它为其他模块建立试基础,如BeanFactory,...

    spring-batch包

    5. **更好的错误处理和恢复机制**:4.0.0 版本增强了错误处理和恢复功能,包括跳过失败的项、记录错误信息以及在失败后恢复作业的能力。 6. **对 Spring Boot 的更好支持**:随着 Spring Boot 的广泛使用,Spring ...

    spring RichClient spring RichClient 示例源码

    通过查看这些源码,开发者可以学习如何组织和编写Spring RichClient应用的代码,理解其内部工作机制,以及如何与其他Spring框架组件配合使用。 总之,Spring RichClient是一个功能强大的桌面应用开发工具,尽管现在...

    springcloud视频

    SpringCloud有以下优势: 1. **成熟度高**:Spring社区的强力支持,拥有丰富的生态和活跃的开发者社区。 2. **易用性强**:基于Spring Boot,采用约定优于配置的设计,使得开发快速上手。 3. **灵活性**:提供多种...

    spring简单的缓存

    参考链接提供的CSDN博客文章《[Spring简单缓存实现](http://blog.csdn.net/maoyeqiu/article/details/50238035)》中,作者详细介绍了如何在Spring项目中实现缓存,包括配置、注解使用以及注意事项,是一个很好的学习...

    Spring Cloud面试题2020·8(35题).pdf

    以上就是关于 Spring Cloud 相关的一些核心知识点,包括其优势、服务注册与发现、负载均衡、Hystrix 容错管理以及 Feign 的使用。这些内容对于理解和应对 Spring Cloud 相关的面试题是非常关键的。

    Spring 动态模型( Spring Dynamic Modules )参考指南

    - **理解OSGi平台**:OSGi平台提供了动态模块化的能力,理解其基本原理和工作机制有助于更好地利用Spring Dynamic Modules 的特性。 - **模块设计**:合理设计模块结构和接口对于构建高效、可维护的应用至关重要。...

    尚硅谷SpringCloud第二季笔记

    它倡导的是容器化、服务化、DevOps以及持续交付的理念,而SpringCloud则为这些理念提供了落地的技术支持。 Spring Cloud的核心组件包括: 1. **Eureka**:服务注册与发现,每个微服务启动后都会向Eureka注册自己的...

    SPRING 4.0 中文指南

    Spring 4.0版本是该框架的一个重要里程碑,引入了许多改进和新特性,使得开发者能够更加高效地工作。这篇指南将深入探讨Spring 4.0的关键知识点。 一、Spring核心模块 Spring的核心模块包括IoC(Inversion of ...

    Spring Data JPA的优点和难点.pdf

    然而,要充分发挥其优势并克服潜在问题,开发者需要深入理解JPA的工作机制,合理调整查询策略,以及适当地与其他优化技术相结合。在面对复杂业务需求和性能挑战时,灵活运用各种技术和策略是关键。

Global site tag (gtag.js) - Google Analytics