如果你不懂Spring,那麼大廠面試官也不會懂你為什麼敢來面試?

你先回去等通知

面試官:看你簡歷寫的不錯,先簡單自我介紹下?

我:大佬好!我是小程,工作時長兩年半,目前負責在公司打雜,啊不

,負責維護公司的兩個項目…

面試官:hmmm,你們項目中Spring用的多麼?

我:還可以,基本上都用得到。(平時都是百度著用用啊)

面試官:那你講講使用Spring的AOP具體是指什麼?

我:(這個我背過答案!)AOP是面向切面編程,能夠將那些與業務無關,卻為業務模塊所共同調用的邏輯或責任封裝起來,便於減少系統的重複代碼,降低模塊間的耦合度,並有利於未來的可擴展性和可維護性。

面試官:嗯,理解的很棒啊,

那你知道有哪些Spring的擴展點嗎?

我:擴展點?BeanDefinition?BeanFactory?

面試官:還有呢?

我:沒了呀。

面試官:好吧,你知道市面上哪些主流框架擴展了Spring,如何擴展?

我:我知道MyBatis擴展了Spring!如何擴展的…呃,不太清楚,其他的沒怎麼接觸過,不太瞭解。我也…

面試官:我懂了,那你簡單闡述一下Spring bean的生命週期。

我:這個,我只記得過程有點複雜,具體的,記不清了…

面試官:那再問你一點別的吧,

Spring 是否支持循環依賴;哪些情況下支持?

Spring體系中的beanDefinition怎麼理解?

講講 Spring在出來循環依賴為什麼需要使用三級緩存?

Spring體系中有些後置處理器?能講講主要作用不?

我:這個…

面試官看了看錶:喲,已經下午3點了,這麼晚了啊?今天就到這裡吧,你有什麼問題要問我嗎?

我:我掛了嗎?

面試官:沒沒沒,你先回去等通知吧!

Spring作為現在最流行java 開發技術,其內部源碼設計非常優秀。如果你不會Spring,那麼很可能面試官會讓你回家等通知。

Spring是什麼?

有一個工地,幾百號人在用鐵鍬鏟子挖坑。

如果開一輛挖掘機來,用一天時間乾的活就相當於一個工人一個月的工作量。而且這個挖掘機是免費開源的,不用花錢買,僅僅需要學習掌握如何操作。

你會如何選擇?

這幾百號人的工地就是企業應用項目實施團隊,而挖掘機就是Spring。

Spring框架為開發Java應用程序提供了全面的基礎架構支持。Spring包含了一些很好的功能,如依賴注入和開箱即用的模塊:

Spring JDBC

Spring MVC

Spring Security

Spring AOP

Spring ORM

Spring Test

這些模塊能極大縮短應用程序的開發時間,提高我們的工作效率。

如果你不懂Spring,那麼大廠面試官也不會懂你為什麼敢來面試?

Spring bean的生命週期

但是現在很多程序員對於Spring的理解只停留在很淺的層面。很多人只關注自己用的那部分代碼的邏輯,而並不真正去理解框架。

如果你不懂Spring,那麼大廠面試官也不會懂你為什麼敢來面試?

以下為 spring 常見面試問題:

1、什麼是 Spring 框架?Spring 框架有哪些主要模塊?

Spring 框架是一個為 Java 應用程序的開發提供了綜合、廣泛的基礎性支持的 Java 平臺。

Spring 幫助開發者解決了開發中基礎性的問題,使得開發人員可以專注於應用程序的開發。

Spring 框架本身亦是按照設計模式精心打造,這使得我們可以在開發環境中安心的集成 Spring 框

架,不必擔心 Spring 是如何在後臺進行工作的。

Spring 框架至今已集成了 20 多個模塊。這些模塊主要被分如下圖所示的核心容器、數據訪問/集

成,、Web、AOP(面向切面編程)、工具、消息和測試模塊。

2、使用 Spring 框架能帶來哪些好處?

下面列舉了一些使用 Spring 框架帶來的主要好處:

 Dependency Injection(DI) 方法使得構造器和 JavaBean properties 文件中的依賴關係一目瞭然。與 EJB 容器相比較,IoC 容器更加趨向於輕量級。這樣一來 IoC 容器在有限的內存和 CPU 資源的情況下進行應用程序的開發和發佈就變得十分有利。Spring 並沒有閉門造車,Spring 利用了已有的技術比如 ORM 框架、logging 框架、J2EE、Quartz 和 JDK Timer,以及其他視圖技術。

 Spring 框架是按照模塊的形式來組織的。由包和類的編號就可以看出其所屬的模塊,開發者僅僅需要選用他們需要的模塊即可。測試一項用 Spring 開發的應用程序十分簡單,因為測試相關的環境代碼都已經囊括在框架中了。更加簡單的是,利用 JavaBean 形式的 POJO 類,可以很方便的利用依賴注入來寫入測試數據。

 Spring 的 Web 框架亦是一個精心設計的 Web MVC 框架,為開發者們在 web 框架的選擇上提供了一個除了主流框架比如 Struts、過度設計的、不流行 web 框架的以外的有力選項。

Spring 提供了一個便捷的事務管理接口,適用於小型的本地事物處理(比如在單 DB 的環境下)和複雜的共同事物處理(比如利用 JTA 的複雜 DB 環境)。

3、請解釋下Spring框架中的IoC?

Spring中的or g. spr ingfr amework. beans包和org. spr ingframework. context包構成了Spring框架IoC容器的基礎。

BeanFactory接口提供了一個先進的配置機制,使得任何類型的對象的配置成為可能。

ApplicationContex接口對BeanFactory (是一個子接口)進行了擴展,在BeanFactory的基礎上添加了其他功能,比如與Spring的AOP更容易集成,也提供了處理message resource的機制(用於國際化)、事件傳播以及應用層的特別配置,比如針對Web應用的WebApplicationContext。

org. springf ramework. beans. factory. BeanFac tory是Spring IoC容器的具體實現,用來包裝和管理前面提到的各種bean。BeanFactory接口是SpringIoC容器的核心接口。

IOC:把對象的創建、初始化、銷燬交給spring來管理,而不是由開發者控制,實現控制反轉。

4、BeanFactory和ApplicationContext有什麼區別?

BeanFactory可以理解為含有bean集合的工廠類。BeanFactory 包含了種bean的定義,以便在接收到客戶端請求時將對應的bean實例化。

BeanFactory還能在實例化對象的時生成協作類之間的關係。此舉將bean自身與bean客戶端的配置中解放出來。BeanFactory 還包含了bean生命週期的控制,調用客戶端的初始化方法( initialization methods)和銷燬方法( destruction methods)。

從表面.上看,application context如同bean factory一樣具有bean定義、bean關聯關係的設置,根據請求分發bean的功能。但applicationcontext在此基礎上還提供了其他的功能。

1. 提供了支持國際化的文本消息.

2.統- -的資源文件讀取方式

3.已在監聽器中註冊的bean的事件

以下是三種較常見的ApplicationContext實現方式:

1、ClassPathXmlApplicationContext:從classpath的XML配置文件中讀取上下文,並生成上下文定義。應用程序,上下文從程序環境變量中

ApplicationContext context = new

ClassPathXmlAppl icat ionContext(“bean. xml”);

2、FileSystemXmlApplicationContext :由文件系統中的XML配置文件讀取上下文。

Appl icationContext context = new

FileSys temXmlApplicationContext(“bean. xml" );

3、XmIWebApplicationContext:由Web應用的XML文件讀取上下文。

4.AnnotationConfigApplicationContext(基於Java配置啟動容器)


如果你不懂Spring,那麼大廠面試官也不會懂你為什麼敢來面試?

5、如何用於XML配的方式配tSpring?

在Spring框架中,依賴和服務需要在專門的配置文件來實現,我常用的XML格式的配置文件。這些配置文件的格式通常用<beans>開頭,然後- -系列的bean定義和專門的應用配置選項組成。/<beans>

SpringXML配置的主要目的時候是使所有的Spring組件都可以用xmI文件的形式來進行配置。這意味著不會出現其他的Spring配置類型(比如聲明的方式或基於Java Class的配置方式)Spring的XML配置方式是使用被Spring命名空間的所支持的一系列的XML標籤來實現的。Spring有以下主要的命名空間: context、 beans. jdbc、 tx、 aop、 mvc和aso.

如:

<beans>


分享到:


相關文章: