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