日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Spring与MVC面试题

發(fā)布時間:2023/12/15 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 Spring与MVC面试题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Spring/Spring MVC

1. Spring是什么,好處有哪些,為什么要使用?

Spring是一個輕量級的開源的JAVAEE框架

好處:方便解耦簡化開發(fā),Aop編程支持,方便程序測試和進行事務操作,可以整合其他框架,降低Api開發(fā)難度

有以上的優(yōu)點可以解決企業(yè)應用開發(fā)的復雜性

2. 解釋一下什么是 AOP?

面向切面:在不改變原有方法的定義與使用,原程序的流程,開源改變原有方法的功能(增加功能)

底層原理:動態(tài)代理

3. 解釋一下什么是 IOC?

控制反轉(依賴注入):將創(chuàng)建對象的控制權交給Spring(容器)管理

實現(xiàn):反射

IOC和di的區(qū)別:ioc可以理解為目的,di為手段。Ioc將對象創(chuàng)建權(new對象)反轉給容器,di依賴ioc容器在對象創(chuàng)建的過程中,將對象依賴的屬性通過配置進行注入。

底層原理:xml解析,工廠模式,反射

4. Spring有幾種IOC容器,區(qū)別是什么?

BeanFactory:負責讀取bean配置文檔,管理bean的加載,實例化,維護bean之間的依賴關系,負責bean的生命周期

加載配置文件時候不對創(chuàng)建對象,在獲取對象(使用)才會創(chuàng)建對象

ApplicationContext:是BeanFactory的子接口,除了上述功能外還提供了更完整的框架功能:國際化,資源訪問,事件傳遞

加載配置文件時就會把配置文件對象進行創(chuàng)建

實現(xiàn)類

5. Spring 有哪些主要模塊?

6. 什么是SpringBean,有幾種類型Bean?

是spring Ioc容器管理的對象,由IOC容器管理來實例化、配置、裝配和管理,基于用戶提供給容器的配置元數據(注入方式)配置

有二種類型bean

普通bean:在配置文件中定義bean類型就是返回類型

工程bean:在配置文件中定義bean類型可以和返回類型不一樣

7. Spring Ioc的注入方式?

基于xml配置:set注入,構造器注入

基于注解方式:注解方式注入

8.Spring可以注入null和屬性值包含特殊符號么?

可以

9.Spring 中的內部Bean和外部Bean是什么?

外部bean用ref屬性放入bean標簽的id值

內部bean:當有一個學生bean和班級bean的時候,班級bean是學生bean的一個屬性,可以在學生bean標簽內使用property標簽嵌套班級bean標簽

10.Spring 中如何注入java集合?

注入屬性值如下圖

注入對象時如下圖

使用bean標簽設置集合對象屬性值,在注入集合中使用list標簽內用ref標簽獲取對象bean

11. Spring 支持幾種 Bean 的作用域?

五種

默認Singleto:單例模式 Prototype 多例 Request 每個請求 session 會話周期

Global-session 全局session 后面3個基于applicationcontext下有效

12.Spring 中的 Bean 是線程安全的嗎?

不是

13.Spring Bean 的生命周期?

實例化bean對象-屬性賦值-處理Aware接口(當有使用的時候)-初始化-銷毀

14. 什么是Spring自動裝配,Spring 自動裝配 Bean 有哪些方式,怎么使用?

根據指定裝配規(guī)則,Spring自動將匹配的屬性值注入

常用 byName根據bean的名稱 id屬性 byType根據類型 bean的class屬性

在bean標簽里使用autowire屬性 使用byName…

局限性:重寫,不能裝配簡單數據類型,模糊特性

15. Spring Bean的注解有哪些?

@Component @Repository @Service @Controller

16. Spring Aop的專業(yè)術語

連接點:類里可以被增強的方法,這些方法稱為連接點

關注點:在應用模塊中實現(xiàn)以解決特定業(yè)務問題的方法

橫切關注點:貫穿整個應用程序的關注點 像事務管理,權限,日志

切入點:實際被真正增強的方法,稱為切入點

引入:引入允許在已存在類中增加的新的方法和屬性

通知(增強):實際增強的邏輯部分稱為通知(增強)

目標對象:被通知對象

通知類型:前置通知,后置通知,環(huán)繞通知,異常通知,最終通知

切面:動作,把通知應用到切入點的過程

代理:通知(增強后)后創(chuàng)建的對象

切點表達式:Aop切點表達式:execution(* com.dao.hibimpl.*.*(..))

第一個*代表所有的返回值類型

第二個*代表所有的類

第三個*代表類所有方法

最后一個..代表所有的參數。

AspectJ

17. jdbc template是什么?怎么使用

Spring框架對jdbc的封裝,使用jdbctemplate方便對數據庫操作

引入jar包,在spring配置文件配置數據庫連接池,配置jdbctemplate對象注入DataSource

18. Spring 支持事務的管理方式?

編程式事務管理(靈活,難維護)和聲明式事務管理(業(yè)務和事務管理分離,通過注解或xml配置管理方便)

聲明式事務管理底層使用aop原理

19. Spring 事務傳播行為是什么,有幾種?

多事務方法調用的時候對數據庫進行變化操作的管理

有七種

20. Spring 事務的隔離級別?

與mysql事務一樣

21. Spring 事務實現(xiàn)方式有哪些?

xml配置:用aop:config聲明要進行事務增強的切面,用tx:advice聲明具體方法的事務屬性,及應用到的事務管理器,此方法的優(yōu)勢比較明顯,使用比較方便,但是缺點是不容易理解,配置容易失誤

注解:使用@transactional注解配置聲明事務,配置比較方便,程序員只要在service層代碼設置即可實現(xiàn)。缺點就是后期調整很煩

22. 說一下 Spring 的事務隔離?

說幾個讀的問題,隔離級別,怎么解決

23. 說一下 Spring MVC 運行流程?

發(fā)送請求到前端控制器,前端控制器請求處理器映射器尋找handler,處理器映射器找到后返回,前端控制器在調用處理器適配器執(zhí)行handler,執(zhí)行完后向前端控制器返回modelandview,前端控制器請求視圖解析器進行視圖解析,解析完成后返回view給前端控制器,前端控制器進行視圖渲染并向用戶響應結果

24. Spring MVC 有哪些組件?

前端控制器 DispatcherServlet

作用:接收請求、響應結果,相當于轉發(fā)器

處理器映射器HandlerMapping

作用:根據請求的URL來查找Handler

處理器適配器HandlerAdapter

執(zhí)行處理器

處理器Handler

封裝的controller

視圖解析器 ViewResolver

根據視圖邏輯名解析成真正的視圖

視圖View

View是一個接口, 它的實現(xiàn)類支持不同的視圖類型

25.Spring MVC 常用注解?

@RequestBody:注解實現(xiàn)接收http請求的json數據,將json轉換為java對象。

@ResponseBody:注解實現(xiàn)將conreoller方法返回對象轉化為json對象響應給客戶。

@RestController:相當于@controller+@ResponseBody

@RequestMapping:用于處理請求 url 映射的注解,可用于類或方法上。

具有六個屬性valuemethodconsumesproducesparamsheaders的作用

Value:指定請求的實際地址,指定的地址可以是URI Template 模式;

Method:指定請求的method類型,GET、POST、PUT、DELETE等;

Consumes:指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;

produces:指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回;

params:指定request中必須包含某些參數值是,才讓該方法處理。

Headers:指定request中必須包含某些指定的header值,才能讓該方法處理請求

26.SpringMvc中函數的返回值是什么?

返回值可以有很多類型,有String, ModelAndView。ModelAndView類把視圖和數據都合并的一起的,但一般用String比較好。

27. SpringMvc用什么對象從后臺向前臺傳遞數據的?

通過request、Model、Map、ModelAndView對象,把要傳遞的值添加到對象里面,前臺就可以通過el表達式拿到。

28.如果想在攔截的方法里面得到從前臺傳入的參數,怎么得到?

1、直接在形參里面聲明這個參數就可以,但必須名字和傳過來的參數一樣。

2、使用@RequestParam注解的方式獲取,注意設置的別名需要與表單傳值的名稱一致。

3、使用POJO對象綁定請求參數值,注意對象中屬性與表單元素的名稱一致。

29.如果前臺有很多個參數傳入,并且這些參數都是一個對象的,那么怎么樣快速得到這個對象?

直接在方法中聲明這個對象,SpringMvc就自動會把屬性賦值到這個對象里面。

30.SpringMVC怎么樣設定重定向和轉發(fā)的?

(1)轉發(fā):在返回值前面加"forward:",比如"forward:user.go?name=1"

(2)重定向:在返回值前面加"redirect:",比如"redirect:user.go"

31.SpringMvc怎么和AJAX相互調用的?

導入jackon jar包,在控制器配置json映射,在方法上使用@ResponseBody注解

32.Spring mvc @PathVariable怎么用?

在@RequestMapping中請求路徑,將需要傳遞的參數用{}括起來,傳參用注解設置別名,別名需要和url中的參數名稱一致

33.Spring MVC里面攔截器是怎么寫的

實現(xiàn)HandlerInterceptor接口,

然后在Spring MVC的配置文件中配置攔截器

34.請說明filter(過濾器)和inteceptor(攔截器)的區(qū)別?

1、攔截器是基于java的反射,過濾器是基于java的函數回調

2、攔截器不依賴于servlet容器,而過濾器依賴于servlet容器

3、攔截器只對action請求起作用,過濾器對所有的請求起作用

4、攔截器可以訪問action上下文,值棧里的對象,而過濾器不能訪問

5、在action生命周期中,攔截器可以被多次調用,過濾器只能在servlet初始化時調用一次

6、攔截器可以獲取IOC容器中的各個bean,過濾器不行,在攔截器中注入一個service可以調用邏輯業(yè)務

35. SpringMVC異常處理?

異常處理二種方式

使用MVC提供的簡單異常處理器 SimpleMappingExceptionResolver

第一步: value跳轉頁面 key 異常名

自定義異常設置

實現(xiàn)Spring的異常處理接口HanlerExceptionResolver自定義自己的異常處理器

①創(chuàng)建異常處理器實現(xiàn)HanlerExceptionResolver

②配置異常處理器

③編寫異常頁面

④測試異常跳轉

配置自定義異常處理器路徑

36.@Autowired 與@Resource的作用是什么有什么區(qū)別?

他們二個都是用來裝配bean的,都可以寫在字段上或者setter上

區(qū)別:

Autowired是Spring提供的,@Resource是java2EE提供的

@Autowired默認按照類型來注入,按照名稱注入需要與修飾符連用

@Resource二種類型都支持,默認按照名稱注入,找不到就按照類型找

37.MVC的控制器是不是單例模式,如果是,有什么問題,怎么解決?

是單例模式,多線程訪問的時候有線程安全問題,不要用同步,會影響性能,解決方案是在控制器里面不能寫字段。

38.SSM 三大框架各個原理,相互之間怎樣的關系?

(1).Springmvc框架主要處理用戶請求和響應處理后的結果,

如:提供處理用戶提交的數據和數據類型轉換以及在前臺顯示用戶數據;

(2).Spring框架主要提供依賴注入,是的各層的對象之間關聯(lián)關系解耦,

并且在Spring框架提供更大的事務支持。

(3).Mybatis框架提供對象的持久化操作,就是面向對象的方式往數據庫里面進行增刪改查。

通過MyBatis框架提供的適配包Mybatis-spring-1.3.0實現(xiàn)與spring的整合.

39. 說一說MVC模式

MVC (Model-View-Controller)模式,即模型-試圖-控制器模式,

其核心思想是將整個程序代碼分成相對獨立而又能協(xié)同工作的3個組成部分,具體的功能如下:

模型(Model): 業(yè)務邏輯層。實現(xiàn)具體的業(yè)務邏輯、狀態(tài)管理的功能。

視圖(View):表示層。與用戶實現(xiàn)交互的頁面,通常實現(xiàn)數據的輸入和輸出功能。

控制器(Controller):控制層。起到控制整個業(yè)務流程的作用,實現(xiàn)View層跟Model層的協(xié)同工作。

總結

以上是生活随笔為你收集整理的Spring与MVC面试题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。