Spring 2 0筆記總結

2021-09-23 17:12:49 字數 3948 閱讀 6068

sping開發使用包

dist \spring.jar

lib\jakarta-commons 下,所有的包

\lib\cglib\ cglib-nodep-2.1_3.jar

1.spring.jar spring的核心庫

2.jarkata commons 半官方庫,collections,beanutils等等都應該歸入jdk的utils。

3.cglib (code generation library)在沒有實現介面時 spring 用他來實現**

ioc:

控制反轉?

物件必須協作才能完成某種業務

以前:物件自己尋找協作物件

現在:協作物件由外部實體提供。

ioc又叫依賴注入

裝配: 容器根據配置檔案將協作物件例項化,建立這些物件之間的關係。

容器:(ppt39)

spring 提供兩種不同的容器:beanfactory 和 applicationcontext ;applicationcontext擴充套件了beanfactory,提供了更多的額外功能.

bean工廠 < org.springframework.beans.factory.beanfactory >

提供最基本的bean的生命週期管理和裝配。 直到呼叫getbean方法時,才真正例項化bean。

getbean(bean's id);

常用beanfactory的實現: (spring提供了好幾種beanfactory)

1> xmlbeanfactory : < org.springframework.beans.factory.xml.xmlbeanfactory>

通過xml檔案建立和配置bean,建立xmlbeanfactory例項需要乙個resource物件,用於指定如何載入xml配置檔案. 例如: beanfactory factory = new xmlbeanfactory(new filesystemresource(「d:

\\test\\config.xml」));

或 beanfactoty factory= new xmlbeanfactory(new classpathresource(「config.xml」)); //在類路徑下查詢

applicationcontext < >

applicationcontext是beanfactory的擴充套件, 擴充套件了核心容器,提供了事件處理,國際化等功能,提供了對jndi, ejb ,遠端呼叫的支援

等等。對於有單例要求的例項,在載入的時候就已經例項化。

常用applicationcontext的實現: (同樣也提供了多種)

1> classpathxmlapplicationcontext < >

applicationcontext實現,它可以依據classpath查詢配置檔案

applicationcontext ctx = new classpathxmlapplicationcontext(配置檔案的相對路徑)

2>filesystemxmlapplicationcontext <

3>xmlwebapplicationcontext < >

區別:基本的beanfactory總是延遲載入bean,直到第一次呼叫getbean(「beanid」)方法請求bean的例項時,beanfactory才會建立這個bean,而applicationcontext在自身初始化時就一次性建立了所有的bean.例如classpathxmlapplicationcontext在呼叫getbean(「beanid」)方法獲取bean例項之前,bean就已經被sping初始化了.

基本裝配:

ioc的實現方式:

(1)基於介面 type1:要求元件實現容器提供的特定的介面,這種方案

屬於浸入式方案,耦合性大,現在不再使用。

(2)基於set方法 type2

(3)基於構造器 type3

set方式:

基本型別:8種基本型別+string

值object:

local要求兩個bean在同乙個配置檔案裡

該bean只能被當前bean使用

集合:(p24)

list,set,map,properties

null:

構造器方式注入

111111111

22222222222

兩種方式的比較 :

如果bean的屬性不多,並且屬性值必須要注入後才能使用,用constructor方式

自動裝配:(ppt34)

讓容器依據某種規則,自動地對元件實施裝配

autowire=""

byname:匹配屬性名與bean的名字

bytype:尋找配置檔案,匹配屬性的型別與bean 的型別,成功就設定. 如果匹配的個數超過乙個,報錯。

constructor:匹配構造器,看構造器的引數型別與bean的型別是否一致,成功就設定,如果匹配的個數超過乙個,報錯。

autodetect:先按照constructor,然後bytype

檢查裝配情況:

dependency-check=""

none:不檢查,預設.

******:僅檢查基本型別屬性和集合屬性是否裝配成功

object:檢查object型別裝配是否成功,及通過注入的屬性

all:全檢查

還可在跟節點定義default-dependency-check,將覆蓋所有的dependency-check設定

dependency-check與autowire配合使用。

盡量少用autowire,在原型開發的時候用於快速開發。

模板裝配(bean的繼承):

模板類需要配置abstract="true"屬性,表示這個bean僅作為模板使用,容器不會為該bean建立例項.但並不是真的要將此類定義為抽象類.

繼承類需要配置 parent="模板類的beanid" 屬性,並且你還可以覆蓋模板類的屬性,如同覆蓋父類屬性.

也可直接繼承

bean的作用域:

scope=""

singleton, 單例.每次呼叫getbean()請求某個bean時,spring總是返回相同的bean例項.

prototype,原型 . 每次請求返回bean的新例項. 例如:

此時,spring容器一旦將例項交給客戶端,就不再對其跟蹤引用,所以無法對prototype作用域的bean定義destroy-method,但仍可定義init-method.

sping2.0新增作用域: request,session,globalsession

初始化與銷毀

init-method,destroy-method

工廠方式建立例項:(spring中可定義3中不同型別的工廠bean):(ppt30)

1> 靜態工廠

需要在xml檔案中配置某個bean為靜態工程bean時,需要指定factoty-method=」工廠方法」屬性.

例如:2> 例項工廠

必須要先例項化工廠物件,才能呼叫它的建立方法.所以要先配置例項工程bean本身,再配置要建立的具體bean例項.所以bean例項需要指定factory-bean=」例項工廠bean的id」,factory-method=」工廠bean的建立方法名」屬性.

例如:3>實現factorybean介面 < org.springframework.beans.factory.factorybean >

一旦某個bean實現了factorybean介面,這個bean就不能在被作為普通bean使用.spring的ioc容器會自動檢測,呼叫getbean(「beanid」)時返回的就是xxfactorybean的工廠方法getobject()返回的具體例項物件.

spring提供了多種factorybean來提供許多有用的服務.

如: 1)jndiobjectfactorybean , < org.springframework.jndi.jndiobjectfactorybean >

考研日語203筆記 總結

第一部分基礎知識 3 一 動詞分類 3 1 五段動詞 一類動詞 3 2 一段動詞 二類動詞 4 3 特殊動詞 三類動詞 4 4 自動詞和他動詞 5 二 關於時態 5 三 肯定 否定 疑問的表達 5 四 句子的中頓 6 第二部分詞形變化 7 一 敬體形與簡體形 7 二 動詞變形 8 1 基本形 普通體...

國二筆記機試

第一課 表結構相關知識 一 資料庫 建索引 表聯絡 資料庫 dbc 表 dbf 專案 pjx 二 索引包括 1.主索引 不能有重複值,欄位前有一把鑰匙 2 候選索引 不能有重複值 3 唯一索引 不能有重複值或者空值 4 普通索引 一張表可以有多個普通索引,並可以有重複值 一張表只能有乙個主索引,但是...

2019小筆記 基本國情

小結知識 堅持中國特色社會主義 基本經濟制度 中國社會主義性質和初級階段國情決定 公有制為主體,多種所有制經濟共同發展 公有制 我國是社會主義國家 必須堅持公有制作為社會主義 經濟制度的基礎。共同富裕 中國特色社會主義根本原則不同階段內容不同,廣大中西部地區在各方面支援了沿海地區先發展起來,國家大力...