Spring基礎(一) 概念

2021-08-31 09:48:24 字數 2540 閱讀 3690

t1:spring中bean的生命週期

total:

1.先要通過反射呼叫bean的構造器例項化bean;

2.再通過反射注入bean的屬性;

3.若實現裡beannameaware介面,根據bean的id,setbeanname();

4.若實現了beanfactoryaware介面,呼叫setbeanfactory(),傳入乙個beanfactory例項進來;

5.若實現了apllicationcontextaware介面,呼叫setapllicationcontext(),將應用上下文的引用傳入;

6.若實現了beanpostprocessor介面,呼叫postprocessbeforeinitialization方法做前置處理;

7.若實現了initializingbean介面,呼叫afterpropertiesset方法;

8.若實現了beanpostprocessor介面,呼叫postprocessafterinitialization方法做後置處理;

10.destroy()。

當bean作用域為單例模式:可以正常destroy;因為每次請求,都會得到相同的bean,在建立例項後,容器會一直跟蹤bean的狀態。

當bean作用域為prototype:無法destroy,因為每次請求bean都是建立的不同的bean,所以建立後將不會跟蹤bean,需要客戶端處理,所以原型模式開銷大,盡量避免使用。

t2:bean的作用域

除了單例,prototype,還有request,session, globalsession

t3:spring中過濾器和***的區別

1.過濾器只在servlet前後起作用,而***能夠深入到方法前後、異常跑出前後等,***的使用有更大的彈性;所以過濾器一般用來處理請求的編碼格式,url鑑權,session,日誌等,***處理業務邏輯,如使用者登入;

2.過濾器是servlet規範里定的,***是spring面向切面變成的一種實現。

3.使用的資源不同。同其他**塊一樣,***也是乙個spring的元件,歸spring管理,配置在spring檔案中,因此能使用spring裡的任何資源、物件(各種bean),而filter不行。

t4:spring intercepter:

***是在請求到servlet之後執行,在spring中,處理器***handlerintercepter是鏈式呼叫的,每個***內都有三個方法:

1.prehandle(); 2.posthandle(); 3.aftercompletion();prehandle是前置處理,返回boolean型別,如果是false表示請求結束,即後續的***和controller都不會執行了,如果是true就會呼叫後續***的prehandle方法,直到執行controller;

posthandle是在controller執行結束後執行,但是執行的順序是反鏈式的,prehandle是從頭到尾執行,posthandle是從尾到頭執行。

aftercompletion是在所有請求結束後執行,主要用於清理工作。

t5:spring filter:

過濾器是在請求到servlet之前做的處理,同樣也是鏈式呼叫。filter也有三個方法:1.init();2.dofilter(); 3.destroy();init方法在filter初始化之後呼叫,destroy在filter銷毀之前呼叫,dofilter過濾請求的request和返回的response,可以在dofilter中利用filterchain呼叫下乙個filter的dofilter。

t6:spring bean的屬性

id: 該bean的唯一識別符號,整個xml檔案

name :  為bean的id建立的別名

class : 定義類的全限定名

?parent :parent雖然是繼承關係,子類繼承父類的屬性,但是子類和父類其實是乙個類,因為父類一般是abstract,不會有class屬性

abstract:定義這個bean是抽象的bean不會被例項化

singleton:true:beanfactory只維護這乙個例項;false:就是prototype,每次建立新的例項

lazy-init:true:在beanfactory啟動時初始化所有的singletonbean;false:bean請求時開始初始化singletonbean

autowire:定義bean的自動裝載方式

dependency-check:檢查bean的依賴關係是否得到滿足

depends-on:該bean對其他bean的依賴關係,value是其他bean的id

init-method: 初始化方法,在bean組裝完之後呼叫

destroy-method:因為只有singleton下的bean才會被容器全程管理,所以銷毀方法只適用於singleton

factory-method:定義建立該bean物件的工廠方法

factory-bean:定義建立該bean物件的工廠類

t7:bean之間的關係

繼承和依賴:

繼承一般父類有abstract屬性,無class屬性,子類通過parent屬性關聯父類

依賴通過depends-on屬性,與依賴bean的id關聯。

Spring 運用(一) 概念

spring強大的核心功能之一,顛覆原有的依賴關係,後面稱為依賴注入。即由ioc容器管理依賴關係 依賴相關的bean的生命週期。註解spring註解很強大,類似於通過 autowire或者 resource進行bean的注入。配置配置又分為setter和construction。面向方面的程式設計,...

密碼學基礎 一 概念篇

對稱密碼 對稱密碼是指加密和解密時使用同一金鑰的加密方式,對稱密碼又稱公共金鑰密碼 傳統密碼 私鑰密碼 共享金鑰密碼等等。公鑰密碼 公鑰密碼是指加密和解密使用不同的金鑰的加密方式,因此也被稱為非對稱密碼對面密碼和公鑰密碼結合起來的方式稱為混合密碼系統 訊息認證碼 訊息認證碼可以確認訊息是否來在所期待...

面試總結一(概念)

1.定義和宣告的區別 宣告是告訴編譯器這個函式或者變數可以在 找到,它的模樣是什麼。而定義是告訴編譯器 在這裡建立函式或變數,並為他們分配記憶體空間。變數的宣告 extern int a 變數的定義 int a 如果在此之前沒有對變數的宣告,則這裡既是宣告也是定義。編譯器會為其分配對應的記憶體。2....