Spring面試題彙總
文章目錄
- 1.關於spring面試高頻面試技術點!
- 2.談一下自己對spring的理解!
- 3.簡單介紹一下Spring的模組!
- 4. 請簡述一下使用spring的好處!
- 5.spring中都用到了哪些設計模式!
- 6.請簡述對應的springIOC!
- 7.可以通過多少種方式完成依賴注入
- 8.請簡述spring IOC的容器!
- 9.列舉對應的IOC的優勢:
- 10. spring中有哪些不同型別的事件。
- 11. spring Bean的配置方式
- 12.springBean的生命週期!
- 13.什麼是spring裝配!
- 14.說一下什麼是延遲載入!
- 15.什麼基於註解的配置!
- 16. 簡單說一下對AOP的理解!
- 17.什麼是advice
- 18.AOP有哪些實現。
- 19.列舉spring支援的事務型別!
1.關於spring面試高頻面試技術點!
- spring的元件springFarmwork即是spring它提供了springmvc,
- springIOC容器化技術實現控制反轉,
- SpringAOP實現面向切面程式設計
- Springtransactional實現對事物的管理
2.談一下自己對spring的理解!
框架的作用是為我們簡化開發,spring是一款輕量型框架,將程式碼解耦合開發,spring對Java分層管理,提升了程式碼的可閱讀性,spring還對多種框架進行整合,完成對應的一站式服務,
spring提供控制反轉功能:即springIOC就是將物件的建立權交給spring管理,我們無需對建立物件,這樣可以提升對應效率,節約了建立物件的時間。spring為我們提供了工廠模式,使用beanfactory工廠建立物件,一般我們使用對應的繼承介面,applicationContext完成對應的配置檔案的讀取。
springAOP:是指面向切面程式設計,面向切面,是spring提供的對事物的服務,而spring提供了兩種事務,一種是響應式事務,另外一種是程式設計式事務,springAOP將響應式事務直接整合到對應的應用程式中。
springtransactional是spring提供的事務:它有兩種,一種是響應式事務,另外一種是程式設計式事務,使用AOP與事務結合,完成對應的事務的管理。
3.簡單介紹一下Spring的模組!
spring提供的模組有對應的data層的資料持久化的支援,有對應的ORM,物件關係對映,對應的JDBC完成對應的持久化資料庫的支援,比如說Mysql,比如說,Oracle完成對應的資料的持久化的支援。還有對事務的管理,transactions支援對應的持久化層的資料,對wab層的資料支援的模組有web,websocket,servlet完成對應的web層資料的管理,對應的還有aspect完成對應的切面的管理,AOP面向切面完成對應的的管理,spring提供的核心有對應的Cores,Bean,context上下文物件,spel是對應IOC容器化的支援。
- JDBC完成對應的持久化資料的支援,比如說,mysql,oracle資料庫,完成對資料庫的封裝
- ORM是指對應的物件關係對映,完成對應的框架的使用比如說hibernate使用,以及半自動框架mybatis框架的使用。
- transactions完成對應的事務的支援,使用註解或者xml,包括程式設計式事務,或者響應式事務。
web層的管理: - web是對應的mvc對應的封裝,完成對應的controller的管理。
- websocker一般是對應的聊天資訊的支援。
- servlet是對應的web層,資料的請求與資料的接收,使用對應request,response
Spring的核心容器: - core是spring的核心程式碼
- bean是spring的對應的是工廠模式的具體實現,beanfactory的實現,與對應的IOC共同完成。
- springcontext完成對應的上下文的建立。
- spel是對應的IOC的模式是一樣的 。
AOP:是面向切面程式設計是一種程式設計思想,他的作用是對事務更好的支援,對對應的宣告式事務更好的支援。
4. 請簡述一下使用spring的好處!
- spring是現在的主流框架,他對其他持久層框架有很好的支援,比如說ORM框架,日誌框架都有很好的支援。
- 支援對應的DI注入,完成對應的引數傳遞。
- spring是一種輕量型框架,使用起來比較方便
- spring有很好的對事務進行支援
- 提供了比較好的異常處理機制
- 提供了對web的支援springmvc
- 使用面向切面思想,將程式碼分離。
5.spring中都用到了哪些設計模式!
- 單例設計模式:分為懶漢式設計模式,餓漢式設計模式,
- 代理模式:有對應的靜態代理模式動態代理模式,對應的動態代理模式有對應的基於jdk的動態代理模式,基於cglib的動態代理模式,基於jdk的動態代理模式是基於介面實現的,基於cgilb的動態代理模式是對應的cglib的。
- 模板設計:對應的有redistmplate,jdbctemplate對模板的設計
- 工廠模式:使用beanfactory,建立對應的beanfactory工廠。
- 前端控制器:dispathservlet來完成對應的請求的分發。
- 提供DI依賴注入,完成對應的資料的applicationcontest的介面實現。
6.請簡述對應的springIOC!
springIOC是spring的控制反轉功能,spring的IOC容器,通過Bean工廠,完成對對應的例項化。通過依賴注入Di完成對應的例項化。可以通過對應的XML完成對應的配置的讀取,通過配置類,完成對應的配置類的注入。
依賴注入是DI完成的是對對應的功能的實現。springIOC是一種控制反轉的思想,將對應的物件的建立權交給spring去建立,利用spring的bean工廠模式,建立對應的配置類,完成控制反轉的功能實現,
7.可以通過多少種方式完成依賴注入
三種:
- 通過介面注入,介面注入一般我們不適用
- 通過建構函式注入
- 通過對應的setter方法注入
需要注意的是構造方法不會對應的引數覆蓋,setter會對對應的set方法覆蓋。
8.請簡述spring IOC的容器!
springIOC容器有兩類:
- beanfactory :通過備案工廠,完成對應的資料的例項化
- applicationcontext:他是對應的beanfactory的介面的實現,它提供了對應的擴充的方法,完成對應的功能的封裝
他們的區別在於:applicationContext可以配置容器的例項化方式,指定物件的建立週期,完成應的兌現的實時載入,提高效率。 - application的例項化方式:
- classpathXMLapplication:類載入物件,完成對配置類資訊讀取。
- fileSystemXMLapplication:完成對應的檔案的上下文讀取。
- webXMLapplication完成對應的資訊的讀取。
springboot支援的是configactionwebXMLapplication
9.列舉對應的IOC的優勢:
- 程式的最小化程式碼,提升程式碼的開發效率。
- 可以控制物件的載入策略,是實時載入還是延遲載入。
- 易於測試,程式碼的測試。
- 將程式碼解耦合:
10. spring中有哪些不同型別的事件。
application提供了對應事件的監聽功能。
五種對應的事件通知:
- 上下文開始事件通知:該通知是呼叫application時呼叫的通知,或者是configactionWebXmlApplication時呼叫的通知呼叫start方法時。
- 上下文更新事件通知:呼叫application或者configactionWebXmLapplication時更新。
- 上下文停止事件通知:容器關閉 或者停止時觸發該事件。
- 上下文關閉事件通知:當application管理的bean被觸發時,關閉的觸發事件,所有的bean都將被銷燬。
- 請求處理事件通知:當一個http請求結束時,一個請求處理事件被觸發。
11. spring Bean的配置方式
springbean的配置方式有三種,
- 基於xml配置:在xml檔案中進行配置
- 基於spring註解:需要先開啟註解
- 基於Java配置類:使用註解@configaction宣告配置類,完成對應的配置資訊。使用@Bean宣告對應的配置資訊。
12.springBean的生命週期!
- 例項化bean物件,完成對應的物件的初始化。
- 使用構造方法賦值到對應的bean的物件中。
- 進一步初始化物件,完成對應的方法呼叫
- 伺服器關閉銷燬對應的bean物件。
13.什麼是spring裝配!
簡單的來說就是spring與bean混合使用,spring的IOC與對應的bean繫結在一起,以及容器如何使用依賴注入,,將對應的bean繫結在一起。實際上DI和spring裝配是指一個東西。
14.說一下什麼是延遲載入!
一般單例模式spring容器啟動,會將對應的物件先建立完成,延遲載入使用對應的lazy-init完成對應的,懶載入,使啟動專案時不建立對應的對應的物件,使用時再創鍵,這就是延遲載入。
15.什麼基於註解的配置!
與對應的XML配置不同,基於註解是在對應的JAva類中,新增對應的@configaction宣告註解的配置類,使用@Bean扮演對應的的標籤。
常用的註解有
@Service在對應的service中使用
@Controller在對應的web曾使用宣告
@Respository在持久層使用,宣告為持久類
@Component交給spring管理的常用的註解
@Autowired引入對應的與對應的Bean,其作用就是自動裝配,預設的型別驅動注入。
@Qualifiler相同的型別的bean使用這個註解消除對應的歧視。
16. 簡單說一下對AOP的理解!
spring協助對應的事務,完成對應的和功能實現,AOP是指面向切面程式設計,aspect是由切點和通知組成,減少業務程式碼中,混入對應的系統程式碼,比如說,事務 ,日誌資訊,許可權管理。
aop的實現原理是基於jdk的動態代理,反射共同實現完成。將對應的系統程式碼抽離出來,使用的動態代理。
在切點中,織入對應的代理功能,比如說對應的事務,許可權管理,日誌管理。
一個方法的執行或者一個異常的處理。
advice和pointcut
在類中我們可以認為所有的節點是一個jointcut,但是我們不是所有的事務都新增對應的織入advice而pointcut就是提供對應的,給滿足條件的pointcut新增對應的advice。
17.什麼是advice
advice是對應的織入,通知的意思。
有哪些型別:
@Before:這個是在對應的註解之前執行,並且使用對應的
@After returning這個是在對應的方法執行後執行,並且返回對應的資訊。
@@After Throwing 這個是在對應的節點之後執行對應的
@After finally 不管是否遇到一異常都會去執行
@Around在連線點之前之後執行
18.AOP有哪些實現。
靜態代理:
動態代理:
- 基於JDK的動態代理,基於cglib的動態代理
- jdk動態代理,是基於介面實現的,cglib的動態代理是基於方法實現的。
19.列舉spring支援的事務型別!
宣告式事務:從而事務管理與業務程式碼分離
程式設計式事務:使用程式設計式事務程式碼的呼叫回滾,非常簡單,但是封裝起來相對麻煩。
相關文章
- iOS 面試題彙總iOS面試題
- mysql 面試題彙總MySql面試題
- vue面試題總彙Vue面試題
- java面試題彙總Java面試題
- LLM面試題彙總面試題
- 機器學習面試問題彙總機器學習面試
- Paycom 面試題彙總面試題
- Linux面試題彙總Linux面試題
- Java面試題彙總(一)Java面試題
- Android 面試題彙總Android面試題
- 技術乾貨:spring cloud面試題彙總及答案SpringCloud面試題
- iOS 基礎面試題彙總iOS面試題
- 關於React面試題彙總React面試題
- 前端面試題整理彙總前端面試題
- 關於HTML面試題彙總HTML面試題
- BAT經典面試題彙總BAT面試題
- 25個Apache面試題彙總Apache面試題
- Linux面試題彙總答案Linux面試題
- Spring,hibernate,struts常見的面試筆試題彙總Spring面試筆試
- PHP 高階工程面試題彙總PHP面試題
- Spark 經典面試題彙總《一》Spark面試題
- 最新PHP面試題彙總(附答案)PHP面試題
- Web前端面試題目彙總Web前端面試題
- 前端工程師面試題彙總前端工程師面試題
- java面試筆試題大彙總Java面試筆試
- [面試倉庫]CSS面試題彙總--佈局篇CSS面試題
- spring cloud 面試題總結SpringCloud面試題
- ASP net core面試題彙總及答案面試題
- JavaScript常見面試題彙總(含答案)JavaScript面試題
- 2018 - iOS 面試題彙總iOS面試題
- Java常見面試題及答案彙總Java面試題
- Python面試基礎題小彙總Python面試
- 前端工程師面試題彙總(轉)前端工程師面試題
- 20個高階Java面試題彙總Java面試題
- 【Java 開發面試】Mysql 面試考點/考題彙總Java面試MySql
- 程式媛面試之高頻題型彙總(一)面試
- 程式媛面試之高頻題型彙總(二)面試
- 【彙總】Python爬蟲常見面試題!Python爬蟲面試題