Spring小記

1.Spring的aop你怎樣實現?

用動態代理和cglib實現,有接口的用動態代理,無接口的用cglib(字節碼的一個處理框架)

2.Spring在SSH起什麼作用

Spring是一個核心容器,提供依賴注入功能,爲大部分框架提供模版,常見的核心類提供初始化,並且整合三層框架

3.Spring容器內部怎麼實現的

內部用Map實現,或者說HashMap,把bean的名字放在map的key,bean的實現map的value

4.怎麼樣理解IOC與AOP

IOC是一種控制反轉的思想,降低了對象的耦合度,使得以前對象之間的依賴關係反轉過來,
AOP是面向切面編程,非侵入式編程,實現了非業務性編程(公共功能),譬如日誌,權限,事務,Jsp裏面處理亂碼(寫一個Filter)等等,一般的Filter都是實現了AOP

5.Spring的事務,事務的作用。

Spring裏面的事務分爲編程式事務和聲明式事務,一般用聲明式事務,用來控制數據操作的完整性,一致性

6.Spring的IOC和AOP你在項目中是怎麼使用的?

IOC主要來解決對象之間的依賴問題,把所有的bean的依賴關係通過配置文件或者註解關聯起來,降低了耦合度,AOP一般用來事務

7.Spring主要使用了什麼模式?

工廠模式-->每個Bean的創建通過方法
單例模式-->默認的每個Bean的作用域都是單例
代理模式-->關於AOP的實現是通過代理,體現代理模式

8.Spring bean的作用域.

Scope作用域有4種,常見的有單例或者多例,默認是單例

9.Spring的事務是如何配置的?

第一種方式:每個Bean都有一個代理 

第二種方式:所有Bean共享一個代理基類

第三種方式:使用攔截器

第四種方式:使用tx標籤配置的攔截器

第五種方式:全註解

10.你使用過Spring中的哪些技術?

bean的管理,AOP技術,IOC技術 ,事務等

11.爲什麼要用Spring

降低對象耦合度,讓代碼更加清晰,提供一些常見的模版

12.說下Spring的註解

1.bean的標記註解
@Component 通用註解 @Repository 持久層註解   @Service 業務層註解  @Controller:表現層註解
2.bean的自動裝配註解
@AutoWired 默認是按照類型裝配,如果有多個類型實現可以用Qualifier來指定名稱
@Resource 默認是按照名稱來裝配,是JDK裏面自帶的註解,默認情況下用@AutoWired註解

13.寫過類似Spring AOP的操作嗎,有哪些通知的?

簡單的寫過,譬如前置通知,後置通知的方法,環繞通知,事務就是典型的AOP的環繞通知實現

14.Spring的事務在項目中你放在哪個層的?

在業務層加個事務控制,要保證處理業務邏輯的完整性。

15.Spring DI的幾種方式

setter注入和構造器注入,一般用setter注入

16.說一下整合Spring的核心監聽器。

這個是在SSH整合的時候使用,是整個WEB項目啓動的時候初始化Spring的容器. 具體是在web.xml裏面配置的ContextLoaderListener,啓動的時候就初始化Spring容器

17.Struts2與Spring整合先啓動那個容器。

先啓動監聽器,因爲先要初始化容器,初始化容器了以後Action才能從容器裏面獲得

18.談談Spring的IOC和AOP,如果不用Spring,怎麼去實現這兩個技術。

ioc用反射實現 ,AOP用動態代理實現

19.講下Spring的七大事務傳播屬性

有七個,常用有兩個REQUIERD, REQUIRED_NEW,REQUIERD表示兩個事務的方法調用的時候,前面的時候和後面的合併成一個事務,REQUIRED_NEW是重啓一個事務,各幹各的

首先,說說什麼事務?

事務,就是一組操作數據庫的動作集合。事務是現代數據庫理論中的核心概念之一。如果一組處理步驟或者全部發生或者一步也不執行,我們稱該組處理步驟爲一個事務。當所有的步驟像一個操作一樣被完整地執行,我們稱該事務被提交。由於其中的一部分或多步執行失敗,導致沒有步驟被提交,則事務必須回滾到最初的系統狀態。

其中spring七個事物傳播屬性: PROPAGATION_REQUIRED-- 支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。 PROPAGATION_SUPPORTS-- 支持當前事務,如果當前沒有事務,就以非事務方式執行。 PROPAGATION_MANDATORY-- 支持當前事務,如果當前沒有事務,就拋出異常。 PROPAGATION_REQUIRES_NEW-- 新建事務,如果當前存在事務,把當前事務掛起。 PROPAGATION_NOT_SUPPORTED-- 以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。 PROPAGATION_NEVER-- 以非事務方式執行,如果當前存在事務,則拋出異常。 PROPAGATION_NESTED-- 如果當前存在事務,則在嵌套事務內執行。如果當前沒有事務, 則進行與PROPAGATION_REQUIRED類似的操作。 五個隔離級別: ISOLATION_DEFAULT 這是一個PlatfromTransactionManager默認的隔離級別,使用數據庫默認的事務隔離級別. 另外四個與JDBC的隔離級別相對應; ISOLATION_READ_UNCOMMITTED 這是事務最低的隔離級別,它充許別外一個事務可以看到這個事務未提交的數據。 這種隔離級別會產生髒讀,不可重複讀和幻像讀。

ISOLATION_READ_COMMITTED 保證一個事務修改的數據提交後才能被另外一個事務讀取。另外一個事務不能讀取 該事務未提交的數據。這種事務隔離級別可以避免髒讀出現,但是可能會出現不可重複讀和幻像讀。

ISOLATION_REPEATABLE_READ 這種事務隔離級別可以防止髒讀,不可重複讀。但是可能出現幻像讀。它除了保證 一個事務不能讀取另一個事務未提交的數據外,還保證了避免下面的情況產生(不可重複讀)

ISOLATION_SERIALIZABLE這是花費最高代價但是最可靠的事務隔離級別。事務被處理爲順序執行。除了防止髒讀, 不可重複讀外,還避免了幻像讀。 關鍵詞: 1)幻讀:事務1讀取記錄時事務2增加了記錄並提交,事務1再次讀取時可以看到事務2新增的記錄; 2)不可重複讀取:事務1讀取記錄時,事務2更新了記錄並提交,事務1再次讀取時可以看到事務2修改後的記錄; 3)髒讀:事務1更新了記錄,但沒有提交,事務2讀取了更新後的行,然後事務T1回滾,現在T2讀取無效。

20.事務併發會引起什麼問題,怎麼解決
    
事務併發會引起髒讀,幻讀,不可重複讀等問題,設定事務的隔離級別就可以解決

21.事務的隔離級別

Spring定義有四種,但是常見的是READ_COMMIT,Oralce有兩種實現,MYSql有四種

22.Spring的IOC容器與工廠類有什麼區別?

IOC(Inversion of Control)對Bean的控制能力更強,能控制對象自動注入,還可以控制生命週期,而工廠類只是簡單的創建一個對象,沒有什麼控制能力

23.事務的安全問題:鎖機制的實現原理及在項目中的使用

 鎖有悲觀鎖和樂觀鎖,悲觀鎖一般假設每個人都會修改數據,默認情況下把數據都鎖住,影響性能,但安全性高.

樂觀鎖是假設每個人都只讀下數據,不會修改數據,性能比較高,但是安全性較低,一般通過增加類似於版本控制裏面版本號來解決問題

24.講下BeanFactory和ApplicationContext的區別

BeanFactory是Spring容器頂級核心接口,比較早,但功能比較少,getBean就是BeanFactory定義的,

ApplicationContext是Spring裏面的另外一個容器頂級接口,它繼承於BeanFactory,但是提供的功能譬如校驗,國際化,監聽,對Bean的管理功能比較多,一般使用ApplicationContext

1.Spring的aop你怎樣實現?

用動態代理和cglib實現,有接口的用動態代理,無接口的用cglib(字節碼的一個處理框架)

2.Spring在SSH起什麼作用

Spring是一個核心容器,提供依賴注入功能,爲大部分框架提供模版,常見的核心類提供初始化,並且整合三層框架

3.Spring容器內部怎麼實現的

內部用Map實現,或者說HashMap,把bean的名字放在map的key,bean的實現map的value

4.怎麼樣理解IOC與AOP

IOC是一種控制反轉的思想,降低了對象的耦合度,使得以前對象之間的依賴關係反轉過來,
AOP是面向切面編程,非侵入式編程,實現了非業務性編程(公共功能),譬如日誌,權限,事務,Jsp裏面處理亂碼(寫一個Filter)等等,一般的Filter都是實現了AOP

5.Spring的事務,事務的作用。

Spring裏面的事務分爲編程式事務和聲明式事務,一般用聲明式事務,用來控制數據操作的完整性,一致性

6.Spring的IOC和AOP你在項目中是怎麼使用的?

IOC主要來解決對象之間的依賴問題,把所有的bean的依賴關係通過配置文件或者註解關聯起來,降低了耦合度,AOP一般用來事務

7.Spring主要使用了什麼模式?

工廠模式-->每個Bean的創建通過方法
單例模式-->默認的每個Bean的作用域都是單例
代理模式-->關於AOP的實現是通過代理,體現代理模式

8.Spring bean的作用域.

Scope作用域有4種,常見的有單例或者多例,默認是單例

9.Spring的事務是如何配置的?

1. 2. 3.

10.你使用過Spring中的哪些技術?

bean的管理,AOP技術,IOC技術 ,事務等

11.爲什麼要用Spring

降低對象耦合度,讓代碼更加清晰,提供一些常見的模版

12.說下Spring的註解

1.bean的標記註解
@Component 通用註解 @Repository 持久層註解   @Service 業務層註解  @Controller:表現層註解
2.bean的自動裝配註解
@AutoWired 默認是按照類型裝配,如果有多個類型實現可以用Qualifier來指定名稱
@Resource 默認是按照名稱來裝配,是JDK裏面自帶的註解,默認情況下用@AutoWired註解

13.寫過類似Spring AOP的操作嗎,有哪些通知的?

簡單的寫過,譬如前置通知,後置通知的方法,環繞通知,事務就是典型的AOP的環繞通知實現

14.Spring的事務在項目中你放在哪個層的?

在業務層加個事務控制,要保證處理業務邏輯的完整性。

15.Spring DI的幾種方式

setter注入和構造器注入,一般用setter注入

16.說一下整合Spring的核心監聽器。

這個是在SSH整合的時候使用,是整個WEB項目啓動的時候初始化Spring的容器. 具體是在web.xml裏面配置的ContextLoaderListener,啓動的時候就初始化Spring容器

17.Struts2與Spring整合先啓動那個容器。

先啓動監聽器,因爲先要初始化容器,初始化容器了以後Action才能從容器裏面獲得

18.談談Spring的IOC和AOP,如果不用Spring,怎麼去實現這兩個技術。

ioc用反射實現 ,AOP用動態代理實現

19.講下Spring的七大事務傳播屬性

有七個,常用有兩個REQUIERD, REQUIRED_NEW,REQUIERD表示兩個事務的方法調用的時候,前面的時候和後面的合併成一個事務,REQUIRED_NEW是重啓一個事務,各幹各的

20.事務併發會引起什麼問題,怎麼解決
    
事務併發會引起髒讀,幻讀,不可重複讀等問題,設定事務的隔離級別就可以解決

21.事務的隔離級別

Spring定義有四種,但是常見的是READ_COMMIT,Oralce有兩種實現,MYSql有四種

22.Spring的IOC容器與工廠類有什麼區別?

IOC(Inversion of Control)對Bean的控制能力更強,能控制對象自動注入,還可以控制生命週期,而工廠類只是簡單的創建一個對象,沒有什麼控制能力

23.事務的安全問題:鎖機制的實現原理及在項目中的使用

 鎖有悲觀鎖和樂觀鎖,悲觀鎖一般假設每個人都會修改數據,默認情況下把數據都鎖住,影響性能,但安全性高.

樂觀鎖是假設每個人都只讀下數據,不會修改數據,性能比較高,但是安全性較低,一般通過增加類似於版本控制裏面版本號來解決問題

24.講下BeanFactory和ApplicationContext的區別

BeanFactory是Spring容器頂級核心接口,比較早,但功能比較少,getBean就是BeanFactory定義的,

ApplicationContext是Spring裏面的另外一個容器頂級接口,它繼承於BeanFactory,但是提供的功能譬如校驗,國際化,監聽,對Bean的管理功能比較多,一般使用ApplicationContext

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章