版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Spring是一個(gè)非?;钴S的開(kāi)源框架;它是一個(gè)基于Core來(lái)構(gòu)架多層JavaEE系統(tǒng)Spring以一種非侵入式的方式來(lái)管理你的代碼,Spring提倡”最少侵入”,這也就意味著你可以適當(dāng)?shù)臅r(shí)候安裝或卸載SpringSpringjar 在解 中找到下面jar文件,拷貝到類(lèi)路徑--spring的類(lèi)庫(kù)在spring文檔的dist--引入的第類(lèi)庫(kù)都spring文檔的lib 如果使用了切面編程(AOP),還需要下列jar文件lib/aspectj/aspectjweaver.jar和aspectjrt.jar如果使用了JSR-250中的注解,如@Resource/@PostConstruct/@PreDestroy,還需要下列jar文件注:JSR(Java規(guī)范請(qǐng)求)是指向JCP(JavaCommunityProcess)提出新增一個(gè)標(biāo)準(zhǔn)化技術(shù)規(guī)范的正式請(qǐng)求。任何人都可以提交JSR(Java規(guī)范請(qǐng)求),以向Java平臺(tái)增添新的API和服務(wù)。JSR已成為Java界的一個(gè)重要標(biāo)準(zhǔn)Spring默認(rèn)情況下是applicationContext.xml文件??梢越⒑芏鄕ml文件,工程中一般Spring的控制反轉(zhuǎn):把對(duì)象的創(chuàng)建、初始化、銷(xiāo)毀等工作交給spring容器來(lái)做。由spring容器控制對(duì)象的生命周期。 啟動(dòng)spring ApplicationContextctx=newString[]{"beans.xml"});可以在整個(gè)類(lèi)路徑中尋找xml文件*通過(guò)這種方式加載。需要將spring的配置文件放到當(dāng)前項(xiàng)目的classpath路徑下
*classpath路徑指的是當(dāng)前項(xiàng)目的 , 是 ApplicationContextctx=newString[]{“d:\\beans.xml“});Spring的配置文件可以指定多個(gè),可以通過(guò)String數(shù)組傳入。注:經(jīng)常用第法啟動(dòng)容 從spring<alias "<bean " Spring<bean Service" <beanid=" Service"class="com..factory. Service"/>public ServiceFactorypublicstatic Servicecreate returnnew }}對(duì)象的在每個(gè)SpringIoC容器中一個(gè)bean定義只有一個(gè)對(duì)象實(shí)例(共享)默認(rèn)情況下會(huì)在容器啟動(dòng)時(shí)初始化bean,但我們可以指定Bean節(jié)點(diǎn)的lazy-init=“true”來(lái)延遲初始化bean,這時(shí)候,只有第一次獲取bean會(huì)才初始化bean。<beanid="xxx" .OrderServiceBean"lazy-如果想對(duì)所有bean都應(yīng)用延遲初始化,可以在根節(jié)點(diǎn)beans設(shè)置default-<beansdefault-lazy-init="true“允許bean可以被多次實(shí)例化(使用一次就創(chuàng)建一個(gè)實(shí)例).Spring不能對(duì)一個(gè)prototypebean的整個(gè)生命周期負(fù)責(zé).這就意味著清楚prototype作用域的對(duì)象并釋放任何prototypebean所持有的昂貴資源都是客戶(hù)端的責(zé)任。Global初始化beanSpring默認(rèn)在啟動(dòng)時(shí)將所有singletonbean提前進(jìn)行實(shí)例化。提前實(shí)例化意味著作為初始化的一部分,ApplicationContext會(huì)自動(dòng)創(chuàng)建并配置所有的singletonbean.Lazy-init=”trueorLazy-init為false,spring容器將在啟動(dòng)的時(shí)候報(bào)錯(cuò)(比較好的式Lazy-init為true,springSpring初始化bean或銷(xiāo)毀bean時(shí),有時(shí)需要作一些處理工作,因此spring可以在創(chuàng)建和拆卸bean的時(shí)候調(diào)用bean的兩個(gè)生命周期方法。<beanid=“foo”init-destory-當(dāng)foo被載入到Spring容器中時(shí)調(diào)用init-method方法。當(dāng)foo從容器中刪除時(shí)調(diào)用destory-method(scope=singleton有效)使用xml<constructor-arg<value><constructor-arg<constructor-arg</constructor-<constructor-arg<value></constructor-setting使用xml簡(jiǎn)單Bean簡(jiǎn)單Bean包括兩種類(lèi)型:包裝類(lèi)型和<bean 基本類(lèi)型,string類(lèi)型<propertyname="age"<propertyname="name"value="其他<bean " "<bean <property " "listset裝配<property<entry<entrymap中的<entry>的數(shù)值和<list>以及<set>的一樣,可以使任何有效的屬性元素,需要注意的是key值必須是String的。<property<prop<prop
在配置文件中,引入context<beansxmlns="xmlns:xsi="beans-在配置文件中加入context:annotation-config注:@Resource注解在spring安裝 的lib\j2ee\common-這兩個(gè)注解的區(qū)別是:@Autowired默認(rèn)按類(lèi)型裝配,@Resource默認(rèn)按名稱(chēng)裝配,當(dāng)找不到與名稱(chēng)匹配的bean才會(huì)按類(lèi)型裝配。@Autowired注解是按類(lèi)型裝配依賴(lài)對(duì)象,默認(rèn)情況下它要求依賴(lài)對(duì)象必須存在,如果允許null值,可以設(shè)置它required屬性為false。 @Resource注解和@Autowired一樣,也可以標(biāo)注在字段或?qū)傩缘膕etter方法 名稱(chēng)可以通過(guò)@Resource的name屬性指定,如果沒(méi)有指定name當(dāng)注解標(biāo)注在字段上,即默認(rèn)取字段的名稱(chēng)作為bean當(dāng)注解標(biāo)注在屬性的setter方法上,即默認(rèn)取屬性名作為bean名稱(chēng)尋找依賴(lài)注意:如果沒(méi)有指定name屬性,并且按照默認(rèn)的名稱(chēng)找不到依賴(lài)對(duì)象時(shí),@Resource注解會(huì)回退到按類(lèi)型裝配。但一旦指定了name屬性,就只能按名指定Bean指定Bean前面的例子我們都是使用XML的bean定義來(lái)配置組件。在一個(gè)稍大的項(xiàng)目中,通常會(huì)有上百個(gè)組件,如果這些組件采用xml的bean定義來(lái)配置,顯然會(huì)增加配置文件的體積,查找及起來(lái)也不太方便。spring2.5為我們引入了組件自動(dòng)掃描機(jī)制,@Repository注解的類(lèi),并把這些類(lèi)納入進(jìn)spring容器中管理。它的作用和在xml文件中使用bean節(jié)點(diǎn)配置組件是一樣的。要使用自動(dòng)掃描機(jī)制,我們需要打開(kāi)以下配置1、引入context命名空間需要在xml<beansxmlns="xmlns:context=" 、在配置文件中添 scan 其中注1、在使用組件掃描元素時(shí),AutowiredAnnotationBeanPostProcessor和CommonAnnotationBeanPostProcessor會(huì)被自動(dòng)檢測(cè)并織入-所有這一切都不需要在XML中提供任何bean配置元數(shù)據(jù)。@Controller用于標(biāo)注控制層組件(如struts中的action)、@Repository用于標(biāo)注數(shù)據(jù)組件,即DAO組件。而@Component泛指組件,當(dāng)組件不好歸類(lèi)的時(shí)候,我們可以使用這個(gè)注解進(jìn)行spring圖中的配置文件中,parent為student在容器中繼承 IOCDI模式的英文叫做Proxy或Surrogate,中可譯為”“,所謂,就是一不想或者不能夠直接一個(gè)對(duì)象,而對(duì)象可以在客戶(hù)端和目標(biāo)對(duì)象之間起到中抽象角角色內(nèi)部含有對(duì)真實(shí)的,從而可以在任何時(shí)候題的,負(fù)責(zé)在需要的時(shí)候創(chuàng)建真實(shí)對(duì)象(和刪除真實(shí)主真實(shí)角JDK的動(dòng)態(tài)必須具備四個(gè)條件:總結(jié):1、因?yàn)槔肑DKProxy生成的類(lèi)實(shí)現(xiàn)了接口,所以目標(biāo)類(lèi)中所有的方法3、利用JDKProxy4、invoke方法中的三個(gè)參數(shù)可以目標(biāo)類(lèi)的被調(diào)用方法的API、被調(diào)用方 CGlib是一個(gè)強(qiáng)大的,高性能,高質(zhì)量的Code生成類(lèi)庫(kù)。它可以在運(yùn)行期擴(kuò)展Java類(lèi)與實(shí)現(xiàn)Java接口。 用CGlib生成類(lèi)是目標(biāo)類(lèi)的子類(lèi) 用CGlib生成類(lèi)不需要接 用CGLib生成的類(lèi)重寫(xiě)了父類(lèi)的各個(gè)方法 器中的intercept方法內(nèi)容正好就是類(lèi)中的方法若目標(biāo)對(duì)象實(shí)現(xiàn)了若干接口,spring使用JDK的java.lang.reflect.Proxy類(lèi)。若目標(biāo)對(duì)象沒(méi)有實(shí)現(xiàn)任何接口,spring使用CGLIB庫(kù)生成目標(biāo)對(duì)象的子類(lèi)。 器必須實(shí)現(xiàn)MethodInterceptor接 在spring中的配總結(jié):不管采用JDK動(dòng)態(tài)生成類(lèi)還是采用CGLIB生成動(dòng)態(tài)類(lèi)。目標(biāo)類(lèi)中 是這樣的),在器中的判碼書(shū)寫(xiě)會(huì)很。 AOP被納入springaop中的目標(biāo)類(lèi)的方法。所謂通知是指到j(luò)oinpoint之后所要做的事情就是通知.通知JDKProxy被到的目標(biāo)類(lèi)中方法的集類(lèi)AOPxml在spring配置文件中切在spring配置文件中目標(biāo)類(lèi)method=”checkSecurity”中的checkSecurity一樣。2、checkSecurity方法中通過(guò)JoinPoint參數(shù)可以獲得目標(biāo)類(lèi)的目標(biāo)方法名稱(chēng)、 在spring配置文件 在器中的方法要和checkSecurity方法一樣,有兩個(gè)參JoinPoint 這里的名字要和returning=”val”中保持一致,指的 在spring配置文件其中throwing 在異常通知中(器)中,必須是checkSecurity方法。 利用 在spring配置文件里 在spring文件 在環(huán)繞通知中,方法名稱(chēng)為checkSecurity。參數(shù)類(lèi)型ProceedingJoinPoint的proceed方法相當(dāng)于invoke方法,調(diào)用目標(biāo)類(lèi)的目標(biāo)方法。ProceedingJoinPoint繼承了JoinPoint類(lèi) Aop靜態(tài)代碼+動(dòng)態(tài)變量=jdbc編程。在spring中動(dòng)態(tài)變量可以用注入的形式給在spring中注入 簡(jiǎn)化為我們對(duì)JDBC的操 完成了對(duì)JDBC的流程的工作,包括SQL語(yǔ)句的創(chuàng)建和執(zhí) 僅需要傳遞DataSource就可以把它實(shí)例 Dao類(lèi)中,用JdbcTemplatespring對(duì)JdbcTemplate進(jìn)行注入。再對(duì)JdbcTemplate進(jìn)行DataSource注入。注:為什么只要對(duì)JdbcTemplate注入DataSource在Dao類(lèi)中,繼承JdbcDaoSupport。因?yàn)镴dbcDaoSupport已經(jīng)有了JdbcTemplate的,所以只要繼承JdbcDaoSupport就相當(dāng)于有了JdbcTemplate屬<property1、產(chǎn)生原因:在Jdbc的操作中,有很多情況下是要將ResultSet里的數(shù)據(jù)封裝到一個(gè)持久化Bean里,再把持久化Bean封裝到集合中。這樣會(huì)造成大量的代碼的重復(fù),不利于代碼重用。而RowMapper正好解決了這個(gè)問(wèn)題。2、使用: 寫(xiě)一個(gè)類(lèi)實(shí)現(xiàn)RowMapper接 SpringSpring事務(wù)的屬Spring事務(wù)的級(jí)XML 如果一個(gè)DAO類(lèi)繼承了HibernateDaoSupport,只需要在spring配置文件中注入SessionFactory就可以了。 如果一個(gè)DAO類(lèi)沒(méi)有繼承HibernateDaoSupport,需要有一個(gè)XML文件 在配置文件中spring的自動(dòng)掃描機(jī)制 在service層通過(guò)@Transaction進(jìn)行注jarSpringweb1、在web.xml
在web.xml中加載applicationContext.xml如果spring配置文件被命名為applicationContext.xml,并且放在WEB-INF param>,因?yàn)镃ontextLoaderListener默認(rèn)在WEB-INF下尋找名為applicationContext.xml<context- INF/classes/applicationContext.xml</param- </context-cl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 滬科版八年級(jí)物理全一冊(cè)《第三章光的世界》單元檢測(cè)卷及答案
- 利用元數(shù)據(jù)促進(jìn)數(shù)據(jù)共享協(xié)作
- 蘇教版五年級(jí)下冊(cè)課內(nèi)閱讀25篇、及課外閱讀材料(含答案)
- 2024高中地理第四章區(qū)域經(jīng)濟(jì)發(fā)展章末整合學(xué)案新人教版必修3
- 2024高中生物第5章生態(tài)系統(tǒng)及其穩(wěn)定性第1節(jié)生態(tài)系統(tǒng)的結(jié)構(gòu)課堂演練含解析新人教版必修3
- 2024高中語(yǔ)文第二單元第7課陸文學(xué)自傳課時(shí)作業(yè)含解析粵教版選修唐宋散文蚜
- 2024高考地理一輪復(fù)習(xí)第十六章第1講資源的跨區(qū)域調(diào)配-以我國(guó)西氣東輸為例教案含解析新人教版
- 2024高考?xì)v史一輪復(fù)習(xí)方案專(zhuān)題九走向世界的資本主義市場(chǎng)第22講“蒸汽”的力量與走向整體的世界教學(xué)案+練習(xí)人民版
- 2024高考地理一輪復(fù)習(xí)第一部分自然地理-重在理解第二章地球上的大氣第6講冷熱不均引起大氣運(yùn)動(dòng)學(xué)案新人教版
- (3篇)2024年幼兒園園長(zhǎng)年度考核表個(gè)人總結(jié)
- 廣東省廣州市黃埔區(qū)2023-2024學(xué)年第一學(xué)期黃埔廣附教育集團(tuán)七年級(jí)數(shù)學(xué)聯(lián)考
- 讀書(shū)分享讀書(shū)交流會(huì)《皮囊》課件
- 07MS101 市政給水管道工程及附屬設(shè)施
- DL∕T 559-2018 220kV~750kV電網(wǎng)繼電保護(hù)裝置運(yùn)行整定規(guī)程
- 店鋪(初級(jí))營(yíng)銷(xiāo)師認(rèn)證考試題庫(kù)附有答案
- 獸藥生產(chǎn)質(zhì)量管理規(guī)范教材教學(xué)課件
- 2024-2029全球及中國(guó)電動(dòng)拖拉機(jī)行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資發(fā)展研究報(bào)告
- 顱腦損傷的高壓氧治療
- 電梯液晶屏廣告可行性方案
- 2023年上海市初中英語(yǔ)考綱詞匯
評(píng)論
0/150
提交評(píng)論