spring(3)

Spring框架中都用到了哪些設計模式?

1.工廠模式:BeanFactory就是簡單工廠模式的體現,用來創建對象的實例

2.單例模式:Bean默認爲單例模式

3.代理模式:SpringAOP功能用到了JDK的動態代理和CCGLIB字節碼生成技術

4.模板方法:用來解決代碼重複的問題

5.觀察者模式:定義對象建一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都會被通知強制更新

 

註解的原理

註解本質上是一個繼承了Annotation的特殊接口,其具體實現類是java運行是生成的動態代理類,當通過反射獲取註解時,返回的java運行時生成的動態代理對象,通過代理對象調用自定義註解的方法,最終會調用AnnotationInvocationHandle的invoke方法。該方法會從memberValues這個map中索引出對應的值。而memberValues的來源是java常量池。

 

SpingJDBC與傳統的JDBC有什麼區別?

Spring的JDBC是在原生態的JDBC上面進行的一次簡單的封裝,提供了一些接口,節省代碼,不管連接、不管事務、不管異常、不管關閉。只需要實現Spring提供的回調類。傳統的JDBC執行過程如下

1.創建連接

2.創建sql語句

3.執行sql語句

4.返回結果

5.關閉資源

在SpringJDBC中只需要實現2、4就可以了,其他都由Spring完成,,而2、4都是通過實現指定的接口,然後將實現類傳遞給Spring句完成了

 

 

什麼是面向切面編程?

針對業務處理過程中的切面進行提取,他所面對的是處理過程中的某個步驟或者階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果

 

爲了降低java的開發的複雜性,Spring採取了一下四種關鍵策略?

1.通過POJO的輕量級和最小侵入性編程

2.通過依賴注入和麪向接口實現松耦合

3.給予切面個管理進行聲明式編程

4.通過切面和模板減少樣板式代碼

 

Spring切面虧應用五種類型的通知?

1.Before

2.After

3.After-returning

4.After-throwing

5.Around

 

 

Spring提供的四種各具特色的AOP支持

1.給予代理的經典的AOP

2.@AspectJ註解驅動切面

3.純POJO切面

4.注入式AspectJ切面(適合Spring的各個版本)

 

 

聲明式事務管理的事務屬性有一下五種?

1.傳播行爲:傳播行爲定義了客戶端與被調用方法之間的事務邊界

2.隔離級別:隔離級別定義了一個事務可能受其他併發事務影響的程度

3.只讀:表明事務是否式只讀的

4.事務超時:指定事務運行的最長時間,超時就會回滾

5.回滾規則:定義了哪些異常會導致事務回滾哪些不會

 

髒讀、不可重複讀和幻讀分別式什麼意思?

髒讀:一個事務讀取了另一個事務改寫但是未提交的數據時。如果改寫在稍後被回滾了,那麼第一個事務獲取的數據就是無效的

不可重複讀:一個事務執行相同的查詢兩次或者兩次以上,但是每次都得到不同 數據。通常是因爲另一個併發事務在兩次查詢期間更新了數據

幻讀:一個事務讀取了幾行數據,接着另一個併發事務插入了一些數據,在隨後的查詢中,第一個事務發現多了一些更本不存在的數據

 

Spring註解說明?

採用掃描的方式配置SpringXMl書寫方式

<context:component-scanbase-package="包名"/>

@Service:用於標註業務層組件

@Controller用於標註控制層組件

@Component 泛指組件,用於不明確的類

@Repository用戶標註數據庫訪問組件

@PostConstruct創建對象時執行的方法

@PreDestory對象摧毀時執行的方法

@Autowired直接訪問私有屬性,直接給私有屬性輸入值

 

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