當前位置:簡歷模板館>面試>面試常見問題>

Spring面試必問題

面試常見問題 閱讀(1.39W)

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的配置