最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

Spring面試題

2023-04-26 15:20 作者:下班被游戲打-  | 我要投稿

Spring面試題

1. 談?wù)勀銓?duì)Spring的認(rèn)識(shí)

2. Spring的bean作用域有哪些

3. Spring的bean是線程安全的嗎

4. 談?wù)凷pringMVC的工作流程

5. SpringMVC有哪些常用的注解?有什么作用?

6. 什么是事務(wù)的傳播特性及Spring支持的特性有哪些?


1. 談?wù)勀銓?duì)Spring的認(rèn)識(shí)

Spring 的兩大核心是IOC和AOP。


IOC就是控制反轉(zhuǎn),指的是原本應(yīng)該由我們自己創(chuàng)建和管理依賴的對(duì)象現(xiàn)在交給了Spring容器來管理。能夠?qū)崿F(xiàn)層與層之間的解耦。


AOP就是面向切面編程,面向切面編程的思想是把核心業(yè)務(wù)邏輯與非核心業(yè)務(wù)邏輯抽離,從而實(shí)現(xiàn)核心業(yè)務(wù)與非核心業(yè)務(wù)之間的解耦。比如添加一個(gè)商品信息,核心業(yè)務(wù)就是做添加商品信息記錄這個(gè)操作,非核心業(yè)務(wù)就是事務(wù)的管理,日志,性能檢測,讀寫分離的實(shí)現(xiàn)等等。AOP讓開發(fā)者可以只關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn)。


2. Spring的bean作用域有哪些

默認(rèn)是singleton,即單例模式

prototype,每次從容器調(diào)用bean時(shí)都會(huì)創(chuàng)建一個(gè)新的對(duì)象

request,每次http請(qǐng)求都會(huì)創(chuàng)建一個(gè)對(duì)象

session,同一個(gè)session共享一個(gè)對(duì)象

global-session


3. Spring的bean是線程安全的嗎

構(gòu)成線程不安全的三要素:


1,多線程環(huán)境

2,訪問同一個(gè)資源

3,資源具有狀態(tài)性


Spring 的 Bean 默認(rèn)是單例模式,處于多線程的工作環(huán)境,滿足1,2條件。

但 Spring 的 Bean 基本不會(huì)對(duì)數(shù)據(jù)進(jìn)行操作,它是無狀態(tài)的,所以是線程安全的。


4. 談?wù)凷pringMVC的工作流程

首先將請(qǐng)求分發(fā)給前端控制器 DispatcherServlet

DispatcherServlet 查詢 HandlerMapping(映射控制器),從而找到處理請(qǐng)求的Controller(處理器)

Controller 執(zhí)行業(yè)務(wù)邏輯處理后,返回一個(gè) ModelAndView(模型和視圖)

DispatcherServlet 查詢一個(gè)或多個(gè) ViewResolver(視圖解析器),找到 ModelAndView 對(duì)應(yīng)的視圖對(duì)象,視圖對(duì)象負(fù)責(zé)渲染返回給客戶端

5. SpringMVC有哪些常用的注解?有什么作用?

6. 什么是事務(wù)的傳播特性及Spring支持的特性有哪些?

什么是事務(wù)的傳播特性?

我們一般都是將事務(wù)的邊界設(shè)置在Service層

那么當(dāng)我們調(diào)用Service層的一個(gè)方法的時(shí),它能夠保證我們的這個(gè)方法中執(zhí)行的所有的對(duì)數(shù)據(jù)庫的更新操作保持在一個(gè)事務(wù)中

在事務(wù)層里面調(diào)用的這些方法要么全部成功,要么全部失敗。那么事務(wù)的傳播特性也是從這里說起的。

如果你在你的Service層的這個(gè)方法中,還調(diào)用了本類的其他的Service方法,那么在調(diào)用其他的Service方法的時(shí)候,這個(gè)事務(wù)是怎么規(guī)定的呢?

必須保證在我方法里調(diào)用的這個(gè)方法與我本身的方法處在同一個(gè)事務(wù)中,否則無法保證事物的一致性。

事務(wù)的傳播特性就是解決這個(gè)問題的


Spring支持的事務(wù)傳播特性

在Spring中,針對(duì)傳播特性的多種配置,我們大多數(shù)情況下只用其中的一種:PROPGATION_REQUIRED


當(dāng)我調(diào)用service層的方法的時(shí)候,開啟一個(gè)事務(wù),那么在調(diào)用這個(gè)service層里面的其他的方法的時(shí)候,如果當(dāng)前方法產(chǎn)生了事務(wù)就用當(dāng)前方法產(chǎn)生的事務(wù),否則就創(chuàng)建一個(gè)新的事務(wù)。這個(gè)工作是由Spring來幫助我們完成的。


Spring支持的事務(wù)傳播特性

PROPAGATION_REQUIRED:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就新建一個(gè)事務(wù)。這是最常見的選擇。PROPAGATION_SUPPORTS:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就以非事務(wù)方式執(zhí)行。

PROPAGATION_MANDATORY:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就拋出異常。

PROPAGATION_REQUIRES_NEW:新建事務(wù),如果當(dāng)前存在事務(wù),把當(dāng)前事務(wù)掛起

PROPAGATION_NOT_SUPPORTED:以非事務(wù)方式執(zhí)行操作,如果當(dāng)前存在事務(wù),就把當(dāng)前事務(wù)掛起。PROPAGATION_NEVER:以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則拋出異常。



Spring面試題的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
昆山市| 孟连| 成安县| 公安县| 万安县| 肥东县| 新巴尔虎右旗| 鹤庆县| 澄迈县| 临海市| 辛集市| 大理市| 太湖县| 牙克石市| 贡觉县| 屏南县| 台北县| 武夷山市| 安陆市| 扎赉特旗| 镇远县| 呼和浩特市| 灌阳县| 澳门| 宜阳县| 禹州市| 屏东市| 大田县| 沅江市| 尉犁县| 庄河市| 石城县| 江安县| 霍城县| 秦皇岛市| 新干县| 方山县| 东台市| 怀宁县| 齐齐哈尔市| 马关县|