`

Spring面试

阅读更多

Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图 1 所示。

组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:

☆ 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

☆ Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。

☆ Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

☆ Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。

☆ Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

☆ Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

☆ Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境 (Web 或 EJB)、独立应用程序、测试环境之间重用。

IOC 和 AOP

控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器(在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。

在典型的 IOC 场景中,容器创建了所有对象,并设置必要的属性将它们连接在一起,决定什么时间调用方法。下表列出了 IOC 的一个实现模式。

Spring 框架的 IOC 容器采用类型 2 和类型3 实现。

面向方面的编程

面向方面的编程,即 AOP,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。

AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。当然,优势就是 Java 类不需要知道日志服务的存在,也不需要考虑相关的代码。所以,用 Spring AOP 编写的应用程序代码是松散耦合的。

AOP 的功能完全集成到了 Spring 事务管理、日志和其他各种特性的上下文中。

IOC 容器

Spring 设计的核心是 org.springframework.beans 包,它的设计目标是与 JavaBean 组件一起使用。这个包通常不是由用户直接使用,而是由服务器将其用作其他多数功能的底层中介。下一个最高级抽象是 BeanFactory 接口,它是工厂设计模式的实现,允许通过名称创建和检索对象。BeanFactory 也可以管理对象之间的关系。

BeanFactory 支持两个对象模型。

□ 单态 模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想。

□ 原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。

bean 工厂的概念是 Spring 作为 IOC 容器的基础。IOC 将处理事情的责任从应用程序代码转移到框架。正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。

分享到:
评论

相关推荐

    25个经典的Spring面试问题包含答案

    这篇文档“25个经典的Spring面试问题包含答案”旨在帮助求职者和开发者更好地理解Spring的核心概念和实际应用。以下是对这些问题的详细解读: 1. **什么是Spring框架?** Spring是一个开源的Java平台,它为构建...

    Spring面试宝典 不看后悔

    Spring面试宝典 不看后悔 被面试到 所以出来分享!

    spring面试题宝典

    《Spring面试题宝典》是针对Java开发者,尤其是对Spring框架有一定掌握的程序员们准备的一份面试指南。Spring作为企业级应用开发中的重要组件,其深入理解和熟练运用是面试过程中的常见考察点。本宝典将围绕Spring的...

    spring 面试 经验 文档

    本个工作7年经验,总结出的spring面试宝典,一般工作1年到5年左右面试的人 只要面试SPRING都不会离开这里面的内容,供大家学习

    Spring面试题总结.pdf

    Spring面试题总结

    spring面试题大全.doc

    spring面试题大全.doc spring面试题大全.doc spring面试题大全.doc spring面试题大全.doc spring面试题大全.doc spring面试题大全.doc spring面试题大全.doc spring面试题大全.doc spring面试题大全.doc spring面试...

    spring面试题.doc

    Spring 框架是Java开发中的一...以上内容涵盖了Spring的核心概念、AOP、DI、集成其他框架以及事务管理等方面,这些都是Spring面试中常见的知识点。理解和熟练运用这些内容,将有助于提升在Spring开发和面试中的竞争力。

    Spring面试专题及答案 SpringMVC SpringCloud SpringBoot面试笔试及答案学习笔记合集.zip

    Spring面试专题及答案 SpringMVC SpringCloud SpringBoot面试笔试及答案学习笔记合集: 10个高频Spring BOOT.docx 55个Spring(7模块).docx 68spring(7个模块).docx spring boot35.docx Spring Data JPA中文文档...

    Spring面试题(含答案).pdf

    Spring面试题(含答案) Spring 是一个 Java 企业级应用的开源开发框架,主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础...

    spring面试题大全

    spring面试题大全,希望可以帮助到大家。 * Spring的优点有什么? * 描述一下spring中实现DI(dependency injection)的几种方式(考察IOC) * 简单描述下IOC(inversion of control)的理解 * Spring对很多ORM框架提供...

    【BAT必备】spring面试题,spring MVC面试题,spring boot面试题,spring cloud面试题

    【BAT必备】spring面试题,spring MVC面试题,spring boot面试题,spring cloud面试题【BAT必备】spring面试题,spring MVC面试题,spring boot面试题,spring cloud面试题【BAT必备】spring面试题,spring MVC面试...

    基于Spring面试专题及答案 SpringMVC SpringCloud SpringBoot面试笔试及答案学习笔记合集

    基于Spring面试专题及答案 SpringMVC SpringCloud SpringBoot面试笔试及答案学习笔记合集(10个): 10个高频Spring BOOT.docx 55个Spring(7模块).docx 68spring(7个模块).docx spring boot35.docx Spring Data ...

    spring 面试题集锦

    spring 面试题集锦spring 面试题集锦spring 面试题集锦spring 面试题集锦spring 面试题集锦spring 面试题集锦

    25个经典的Spring面试问答

    25个经典的Spring面试问答,最常遇到的25个

    后端+spring面试题+面试用

    spring面试题 博主是一名工作多年的老Java开发,这份Spring面试题送给你,希望对你有所帮助 小伙伴们还可以免费看下本博主整理的Spring专栏 https://blog.csdn.net/u014534808/category_7677806.html 学习的路上我们...

    spring面试题

    spring面试题总结,spring面试题总结,spring面试题总结,spring面试题总结

    Java架构面试资料合集Spring面试专题及答案MySQL面试Redis面试资料.zip

    Java架构面试资料合集Spring面试专题及答案MySQL面试Redis面试资料: BAT面试常问80题 Dubbo服务框架面试专题及答案整理文档 java筑基(基础)面试专题系列(一):Tomcat+Mysql+设计模式 java筑基(基础)面试专题...

    Spring面试题(含答案)_20190220222455.pdf

    Spring面试题(含答案)

    Spring面试题与答案.doc

    阿里Spring面试题与答案

    spring面试经典题目

    面试中,Spring相关的题目经常出现,这反映了其在实际开发中的重要性。下面,我们将详细讨论Spring框架的一些关键知识点。 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一,允许开发者在运行...

Global site tag (gtag.js) - Google Analytics