Spring框架-面试题核心概念

news/2025/3/4 23:08:32/

目录

1.Spring框架的作用是什么?

2. 什么是DI?

3.什么是AOP?

4.Spring常用注解

5.Spring中的设计模式

6.Spring支持的几种bean的作用域

7.Spring中Bean的生命周期?

8.Spring中的事务管理

9.Spring中的依赖注入方式有几种

10.Spring的配置方式有哪些


1.Spring框架的作用是什么?

要点:

Spring是一个开源框架,主要为了简化企业级应用的开发。它是一个IOC和AOP的容器框架。核心功能如下:

(1)DI依赖注入容器,实现面向接口、模块化开发。

(2)AOP面向切面容器,实现程序的动态统一增强。

(3)为不同的ORM技术提供Session管理和声明式事务管理,简化数据层开发。

(4)提供优秀的SpringMVC框架,简化界面层开发,也可以轻松整合其他MVC框架。

(5)提供Spring Boot快速配置,Spring Cloud微服务架构。简化各种企业级技术的实现:如NoSQL、大数据、分布式技术等等。

2. 什么是DI?

要点:

DI(Dependency Injection)是指依赖注入或者叫控制反转(IOC),指程序中对象所依赖的子对象不用在硬编码中创建,而是通过容器(如Spring)在运行时再注入进来。

    DI使得模块间只依赖于接口,而不是实现类(实现类在运行时由容器注入),使得软件模块可以独立开发与测试,降低耦合度。

3.什么是AOP?

要点:

AOP(Aspect Oriented Programming)面向切面编程。可以在不修改原有代码的基础上为方法注入增强代码的一种方式。AOP是通过代理模式或者动态代理的方式,把外部代码织入到原有程序中的。AOP典型的应用场景就是事务,日志,权限,异常处理等。

AOP利用“横切"的技术,剖开封装的对象内部,并将影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,有利于未来的可操作性和可维护性。

4.Spring常用注解

要点:

(1)组件相关:

@Component 组件,例如工具类

@Service 在业务逻辑层使用

@Repository 在数据访问层使用

@Controller  控制器的声明

(2)依赖注入:

@Autowired:由Spring提供,按类型实现依赖注入

@Resource:由JSR-250提供

(3)配置注解:

@Configuration 声明当前类为配置类

@Bean 注解在方法上,声明当前方法的返回值为一个bean,替代<bean/>

@ComponentScan 设置包的扫描范围

(4)AOP注解:

@Aspect 声明一个切面(类上)

@After 后置通知

@Before 前置通知

@Around 环绕通知

@PointCut 声明切点

@Scope 设置Bean的作用范围

5.Spring中的设计模式

要点:

    代理模式:在AOP使用动态代理实现切面编程

    单例模式:在spring配置文件中定义的bean默认为单例模式。

    模板方法模式:用来解决代码重复的问题。

    前端控制器模式:Spring提供了DispatcherServlet来对请求进行分发。

    依赖注入模式:贯穿于BeanFactory / ApplicationContext接口的核心理念。

    工厂模式:BeanFactory用来创建对象的实例。

6.Spring支持的几种bean的作用域

要点:

     singleton:单例,默认作用域,SpringIOC容器中只存在一个实例

     prototype:每次通过Spring容器获取prototype定义的bean时,都将创建一个新的Bean实例,每个Bean实例都有自己的属性和状态,

     request:在一次Http请求中,容器会返回该Bean的同一实例。而对不同的Http请求则会产生新的Bean,而且该bean仅在当前Http Request内有效。

     session:在一次Http Session中,容器会返回该Bean的同一实例。而对不同的Session请求则会创建新的实例,该bean实例仅在当前Session内有效。

      global Session:在一个全局的Http Session中,容器会返回该Bean的同一个实例,仅在使用 portlet context时有效。

7.Spring中Bean的生命周期?

要点:

Bean的生命周期经历了一系列方法,比较关键的过程有以下几点:

(1)实例化一个Bean,就是通常说的new;

(2)初始化:按照Spring上下文对实例化的Bean进行配置,也就是IOC注入。如果这个Bean的Spring配置中配置了init-method属性,会自动调用其配置的初始化方法

(3)Bean的调用:获取bean并进行调用;

(4)Bean销毁:当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean接口,会调用其实现的destroy方法。如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。

8.Spring中的事务管理

要点:

作为企业级应用程序框架,Spring在不同的事务管理API之上定义了一个抽象层。而应用程序开发人员不必了解底层的事务管理API,就可以使用Spring的事务管理机制。Spring既支持编程式事务管理(也称编码式事务),也支持声明式的事务管理。

编程式事务管理:将事务管理代码嵌入到业务方法中来控制事务的提交和回滚,在编程式事务中,必须在每个业务操作中包含额外的事务管理代码。

    声明式事务管理:大多数情况下比编程式事务管理更好用。它将事务管理代码从业务方法中分离出来,以声明的方式来实现事务管理。事务管理作为一种横切关注点,可以通过AOP方法模块化。Spring通过Spring AOP框架支持声明式事务管理。

9.Spring中的依赖注入方式有几种

要点:

(1)set属性注入

(2)构造器注入

(3)静态工厂方法注入

(4)实例工厂方法注入

10.Spring的配置方式有哪些

要点:

   Spring支持xml配置,注解配置以及JavaConfig配置三种形式。

(1)基于 xml 配置

<bean id=”dao” class=”com.demo.dao.impl.UserDaoImpl”></bean>

(2)基于注解配置

可以通过在相关的类,方法或字段声明上使用注解,将 bean 配置为组件类本身,而不是使用 XML 来描述 bean 装配。默认情况下,Spring 容器中未打开注解装配

<beans><context:annotation-config/>
</beans>

(3) 基于 Java API 配置

Spring 的 Java 配置是通过使用 @Bean 和 @Configuration 来实现。

@Bean 注解扮演与 <bean /> 元素相同的角色。

@Configuration 标记配置类,替代了xml配置中的配置文件


http://www.ppmy.cn/news/295809.html

相关文章

Spark数据倾斜解决方案三:随机key双重聚合

什么是随机key双重聚合 随机Key双重聚合是指Spark分布式计算对RDD调用reduceByKey等聚合类Shuffle算子进行计算,使用对Key值随机数前缀的处理技巧,对Key值进行二次聚合。 第一次聚合(局部聚合):对每个Key值加上一个随机数,执行第一次reduceByKey聚合操作。第二次聚合(双…

从Android UI收集流的更安全方法

从Android UI收集流的更安全方法 在安卓应用中&#xff0c;通常从UI层收集Kotlin flows以显示屏幕上的数据更新。但是&#xff0c;为了确保不做过多的工作、浪费资源&#xff08;包括CPU和内存&#xff09;或在视图转到后台时泄漏数据&#xff0c;您需要收集这些flows。 在本…

【PCIE体系结构十三】LTSSM

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考书籍&#xff1a;《PCI.EXPRESS系统体系结构标准教材 Mindshare》 目录 概览…

笔记本加装内存条,更换散热风扇(以联想y7000为例)

先附上视频地址&#xff1a;联想y7000笔记本加装内存条&#xff0c;更换散热风扇拆机视频_哔哩哔哩_bilibili 步骤1&#xff1a;拆螺丝&#xff0c;卸后盖&#xff08;先洗手清除身上静电&#xff09; 步骤2&#xff1a;将固定内存条两边的杠杆往外掰&#xff0c;内存条自动弹…

笔记本的散热技术

前几天一个朋友问起关于笔记本的散热问题&#xff0c;查了查资料&#xff0c;现整理如下。 散热是笔记本电脑制造中的关键技术之一&#xff0c;它与笔记本电脑工作时的稳定性以及工作性能都息息相关。严重的散热问题甚至将影响到笔记本电脑的使用寿命。对于台式机而言&#xf…

笔记本深度学习训练散热实用指南

笔记本的散热能力远不如台式机&#xff0c;跑深度学习训练的时候如果不注意散热有可能会导致温度过高&#xff0c;可能会烧显卡烧主版等等&#xff0c;本文就讨论一下如何用一种简单的办法提升笔记本的散热能力。 注意&#xff0c;事先声明&#xff1a; &#xff08;1&#x…

笔记本开机散热声音很大怎么处理

我的电脑原本一直都挺好的&#xff0c;声音比较小&#xff0c;是直到某次一个必须刷的课要用到flash插件&#xff0c;中午去吃饭偷懒放那刷课&#xff08;我怀疑它不会自动关闭&#xff0c;并且找不到下一个任务所以会一直执行&#xff09;&#xff0c;等我下午回办公室我的电脑…

恭喜!电影《觅渡》入围上海电影节第20届传媒单元大奖

生生不息&#xff0c;念廿不忘&#xff1b; 传媒荣誉&#xff0c;开启在即&#xff01; 第20届电影频道传媒关注单元 即将迎来20周年 一共有18部影片 入围竞逐年度传媒荣誉 6月16日晚 CCTV-6电影频道、 电影频道融媒体 将现场直播 揭晓传媒荣誉名单 电影《觅渡》入围上…