可可簡歷網

位置:首頁 > 面試 > 面試常見問題

Spring面試必問題

1、談談你對spring的理解?

Spring面試必問題

Spring是個java企業級應用的開源開發框架,輕量級,基本的版本大約2MB,Spring的優點主要體現在IOC和AOP,他兩說白了就是對工廠模式和代理模式的一個封裝

2、解釋Spring中IOC, DI, AOP

IOC就是控制反轉或依賴注入。簡單點說就是以前我們需要一個物件的時候都是new出來,而spring的IOC就幫我們實現了這一點,通過Spring的bean工廠為你生成所需要的物件

AOP就是面向切面程式設計,比如說你每做一次對資料庫操作,都要生成一句日誌。如果,你對資料庫的操作有很多類,那你每一類中都要寫關於日誌的方法。但是如果你用aop,那麼你可以寫一個方法,在這個方法中有關於資料庫操作的方法,每一次呼叫這個方法的時候,就加上生成日誌的操作。

3、Spring的IOC是解耦,AOP是幹什麼的?

AOP面向切面程式設計 將程式中的交叉業務邏輯(比如安全,日誌,事務等),封裝成一個切面,然後注入到目標物件(具體業務邏輯)中去。 比如: 很多方法可能會拋異常,你要記錄這個異常到日誌中去,可以寫個攔截器類,在這個類中記錄日誌 在中配置一個對這些要記錄日誌的方法的aop攔截器 在這個方法執行後呼叫這個攔截器,記錄日誌。這樣就不用每次拋異常都要手動記錄日誌。 spring的事務管理用到的就是aop 這樣也可以提高程式的內聚性。

4、 Bean 工廠和 Application contexts 有什麼區別?

Application contexts提供一種方法處理文字訊息,一個通常的做法是載入檔案資源(比如映象),它們可以向註冊為監聽器的bean釋出事件。另外,在容器或容器內的物件上執行的那些不得不由bean工廠以程式化方式處理的操作,可以Application contexts中以宣告的方式處理。Application contexts實現了MessageSource介面,該介面的實現以可插拔的方式提供獲取本地化訊息的方法。

5、有哪些不同型別的IOC(依賴注入)方式?

(1)構造器依賴注入:構造器依賴注入通過容器觸發一個類的構造器來實現的,該類有一系列引數,每個引數代表一個對其他類的依賴

(2)Setter方法注入:Setter方法注入是容器通過呼叫無參構造器或無參static工廠 方法例項化bean之後,呼叫該bean的setter方法,即實現了基於setter的依賴注入。

6、Spring beans是什麼?

Spring beans 是那些形成Spring應用的主幹的java物件。它們被Spring IOC容器初始化,裝配,和管理。這些beans通過容器中配置的元資料建立。比如,以XML檔案中 的形式定義。Spring 框架定義的beans都是單件beans。在bean tag中有個屬性”singleton”,如果它被賦為TRUE,bean 就是單件,否則就是一個 prototype bean。預設是TRUE,所以所有在Spring框架中的beans 預設都是單件。

7、 一個 Spring Bean 定義 包含什麼?

一個Spring Bean 的定義包含容器必知的所有配置元資料,包括如何建立一個bean,它的生命週期詳情及它的依賴

8、Spring框架中的單例bean是執行緒安全的嗎?

Spring框架中的單例bean不是執行緒安全的

9、Spring的註解有哪些?

@Component:是所有受Spring 管理元件的通用形式,@Component註解可以放在類的頭上,@Component不推薦使用。

@Controller: @Controller對應表現層的Bean

@Service: @Service對應的是業務層Bean

@ Repository:@Repository對應資料訪問層Bean

@Autowired: @Autowired 根據bean 型別從spring 上線文中進行查詢,註冊型別必須唯一

@RequestMapping:@RequestMapping 可以宣告到類或方法上

@RequestParam

10、Spring有幾種配置方式?

(1)基於xml的配置

(2)基於註解額配置

(3)基於java的配置

標籤:Spring 面試