Spring面试题-Spring概述基础

Spring面试题-Spring概述基础,第1张

Spring面试题-Spring概述基础

目录
  • 什么是Spring
  • Spring framework 中有多少个模块,它们分别是什么?
  • 什么是 Spring 配置文件?
  • Spring 应用程序有哪些不同组件?
  • 使用 Spring 有哪些方式?
  • Spring 框架中都用到了哪些设计模式?
  • 详细讲解一下核心容器(spring context应用上下文) 模块
  • Spring框架中有哪些不同类型的事件
  • Spring的优缺点是什么

什么是Spring
  • spring是一个轻量级的开源容器框架。
  • spring是为了解决企业级应用开发的业务逻辑层和其他各层对象和对象直接的耦合问题
  • spring是一个IOC和AOP的容器框架
    IOC:控制反转
    AOP:面向切面编程
    容器:包含并管理应用对象的生命周期
Spring framework 中有多少个模块,它们分别是什么?

Spring 核心容器 – 该层基本上是 Spring framework 的核心。它包含以下模块:
· Spring Core· Spring Bean · SpEL (Spring expression Language)· Spring Context

数据访问/集成 – 该层提供与数据库交互的支持。它包含以下模块:
· JDBC (Java Database Connectivity) · ORM (Object Relational Mapping) · OXM (Object XML Mappers) · JMS (Java Messaging Service) · Transaction

Web – 该层提供了创建 Web 应用程序的支持。它包含以下模块:
· Web · Web – Servlet · Web – Socket · Web – Portlet

AOP · 该层支持面向切面编程 Instrumentatio · 该层为类检测和类加载器实现提供支持。

Test · 该层为使用 JUnit 和 TestNG 进行测试提供支持。 几个杂项模块: Messaging – 该模块为 STOMP 提供支持。它还支持注解编程模型,该模型 用于从 WebSocket 客户端路由和处理 STOMP 消息。 Aspects – 该模块为与 AspectJ 的 集成提供支持

(1)spring core:提供了框架的基本组成部分,包括控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injection,DI)功能。

(2)spring beans:提供了BeanFactory,是工厂模式的一个经典实现,Spring将管理对象称为Bean。

(3)spring context:构建于 core 封装包基础上的 context 封装包,提供了一种框架式的对象访问方法。

(4)spring jdbc:提供了一个JDBC的抽象层,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解析, 用于简化JDBC。

(5)spring aop:提供了面向切面的编程实现,让你可以自定义拦截器、切点等。

(6)spring Web:提供了针对 Web 开发的集成特性,例如文件上传,利用 servlet listeners 进行 ioc 容器初始化和针对 Web 的 ApplicationContext。

(7)spring test:主要为测试提供支持的,支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。

什么是 Spring 配置文件?

Spring 配置文件是 XML 文件。该文件主要包含类信息。它描述了这些类是如何配置以及相 互引入的。
但是,XML 配置文件冗长且更加干净。如果没有正确规划和编写,那么在大项目中管理变得非常困难。

Spring 应用程序有哪些不同组件?

Spring 应用一般有以下组件:

(1)接口 - 定义功能。

(2)Bean 类 - 它包含属性,setter 和 getter 方法,函数等。

(3)Bean 配置文件 - 包含类的信息以及如何配置它们。

(4)Spring 面向切面编程(AOP) - 提供面向切面编程的功能。

(5)用户程序 - 它使用接口。

使用 Spring 有哪些方式?

(1)作为一个成熟的 Spring Web 应用程序。

(2)作为第三方 Web 框架,使用 Spring frameworks 中间层。

(3)作为企业级 Java Bean,它可以包装现有的 POJO(Plain Old Java Objects)。 用于远程使用。

Spring 框架中都用到了哪些设计模式?

(1)工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;

(2)单例模式:Bean默认为单例模式。

(3)代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术;

(4)模板方法:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。

(5)观察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新,如Spring中listener的实现–ApplicationListener。

详细讲解一下核心容器(spring context应用上下文) 模块

这是基本的Spring模块,提供spring 框架的基础功能,BeanFactory 是 任何以spring为基础的应用的核心。Spring 框架建立在此模块之上,它使Spring成为一个容器。

Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从真正的应用代码中分离。最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory ,它根据XML文件中的定义加载beans。该容器从XML 文件读取配置元数据并用它去创建一个完全配置的系统或应用。

Spring框架中有哪些不同类型的事件

Spring 提供了以下5种标准的事件:

(1)上下文更新事件(ContextRefreshedEvent):在调用ConfigurableApplicationContext 接口中的refresh()方法时被触发。

(2)上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件。

(3)上下文停止事件(ContextStoppedEvent):当容器调用ConfigurableApplicationContext的Stop()方法停止容器时触发该事件。

(4)上下文关闭事件(ContextClosedEvent):当ApplicationContext被关闭时触发该事件。容器被关闭时,其管理的所有单例Bean都被销毁。

(5)请求处理事件(RequestHandledEvent):在Web应用中,当一个http请求(request)结束触发该事件。如果一个bean实现了ApplicationListener接口,当一个ApplicationEvent 被发布以后,bean会自动被通知。

Spring的优缺点是什么










缺点:
(1)Spring明明一个很轻量级的框架,却给人感觉大而全

(2)Spring依赖反射,反射影响性能

(3)使用门槛升高,入门Spring需要较长时间

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5563475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存