版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第11章Spring框架01Spring概述02SpringIoC03AOP概述04Spring的切入點(diǎn)05Aspect對AOP的支持06Spring持久化1
Spring概述Spring組成Spring的配置結(jié)構(gòu)使用BeanFactory管理BeanApllicationContext接口1.ClassPathXmlApplicationContext類從當(dāng)前類路徑中檢索配置文件并加載來創(chuàng)建容器的實(shí)例,其語法格式如下:ApplicationContextcontext=newClassPathXmlApplicationContext(StringconfigLocation);configLocation參數(shù)指定Spring配置文件的名稱和位置。2.FileSystemXmlApplicationContext類該類不從類路徑中獲取配置文件,而是通過參數(shù)指定配置文件的位置。它可以獲取類路徑之外的資源,其語法格式如下:ApplicationContextcontext=newFileSystemXmlApplicationContext(StringconfigLocation);3.WebApplicationContext類WebApplicationContext是Spring的Web應(yīng)用容器,在Servlet中使用該類的方法一是在Servlet的web.xml文件中配置Spring的ContextLoaderListener監(jiān)聽器;二是修改web.xml配置文件,在其中添加一個Servlet,定義使用Spring的org.springframework.web.context.ContextLoaderServlet類。2
SpringIoC控制反轉(zhuǎn)與依賴注入什么是依賴注入?IoC將創(chuàng)建實(shí)例的任務(wù)交給IoC容器,這樣開發(fā)應(yīng)用代碼時只需要直接使用類的實(shí)例,這就是IoC控制反轉(zhuǎn),即“依賴注入”依賴注入的3種實(shí)現(xiàn)類型接口注入Setter注入構(gòu)造器注入配置Bean要在SpringIoC容器中獲取一個bean,首先要在配置文件中的<beans>元素中配置一個子元素<bean>,Spring的控制反轉(zhuǎn)機(jī)制會根據(jù)<bean>元素的配置來實(shí)例化這個bean實(shí)例。<beanid="test"class="com.mr.Test"/>Setter注入publicclassUser{privateStringname;//用戶姓名privateIntegerage;//年齡privateStringsex;//性別……//省略的Setter和Getter方法}<!--UserBean--><beanname="user"class="com.mr.user.User"><propertyname="name"><value>無語</value></property><propertyname="age"><value>30</value></property><propertyname="sex"><value>女</value></property></bean>在上面的代碼中,<value>標(biāo)簽用于為name屬性賦值,這是一個普通的賦值標(biāo)簽。直接在成對的<value>標(biāo)簽中放入數(shù)值或其他賦值標(biāo)簽,Spring會把這個標(biāo)簽提供的屬性值注入到指定的JavaBean中。構(gòu)造器注入//構(gòu)造方法publicUser(Stringname,Integerage,Stringsex){=name;this.age=age;this.sex=sex;}<!--UserBean--><beanname="user"class="com.mr.user.User"><constructor-arg><value>無語</value></constructor-arg><constructor-arg><value>30</value></constructor-arg><constructor-arg><value>女</value></constructor-arg></bean>在類被實(shí)例化時其構(gòu)造方法被調(diào)用并且只能調(diào)用一次,所以構(gòu)造器被常用于類的初始化操作。<constructor-arg>是<bean>元素的子元素,通過<constructor-arg>元素的<value>子元素可以為構(gòu)造方法傳參。引用其他Bean和創(chuàng)建匿名內(nèi)部JavaBean<beanname="/main.do"class="com.mr.main.Manager"><propertyname="user"><reflocal="user"/></property></bean><beanid="school"class="School"><propertyname="student"><beanclass="Student"/></property></bean>引用其他Bean創(chuàng)建匿名內(nèi)部JavaBean3
AOP概述什么是AOP?AspectOrientedProgramming,即面向切面編程。切面是對象操作過程中的截面AOP術(shù)語切入點(diǎn)是連接點(diǎn)的集合對象操作過程中的某個階段點(diǎn)通知是某個切入點(diǎn)被橫切后所采取的處理邏輯,即在“切入點(diǎn)”處攔截程序后通過通知來執(zhí)行切面4
Spring的切入點(diǎn)靜態(tài)與動態(tài)切入點(diǎn)靜態(tài)切入點(diǎn)動態(tài)切入點(diǎn)靜態(tài)切入點(diǎn)可以為對象的方法簽名,如在某個對象中調(diào)用了execute()方法時,這個方法即靜態(tài)切入點(diǎn)靜態(tài)切入點(diǎn)只能應(yīng)用在相對不變的位置,而動態(tài)切入點(diǎn)可應(yīng)用在相對變化的位置,如方法的參數(shù)上。深入靜態(tài)切入點(diǎn)靜態(tài)切入點(diǎn)在某個方法名上織入切面,所以在織入程序代碼前要匹配方法名,即判斷當(dāng)前正在調(diào)用的方法是不是已經(jīng)定義的靜態(tài)切入點(diǎn)。如果是,說明方法匹配成功并織入切面;否則匹配失敗,不織入切面。<!--深入靜態(tài)切入點(diǎn)--><beanid="pointcutAdvisor"class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"><propertyname="patterns"><list><value>.*execute.*</value><!--指定切入點(diǎn)--></list></property></bean>publicbooleanmatches(Methodmethod,ClasstargetClass){return(method.getName().equals("execute"));//匹配切入點(diǎn)成功}Spring中的其他切入點(diǎn)切入點(diǎn)實(shí)現(xiàn)類說
明org.springframework.aop.support.JdkRegexpMethodPointcutJDK正則表達(dá)式方法切入點(diǎn)org.springframework.aop.support.NameMatchMethodPointcut名稱匹配器方法切入點(diǎn)org.springframework.aop.support.StaticMethodMatcherPointcut靜態(tài)方法匹配器切入點(diǎn)org.springframework.aop.support.ControlFlowPointcut流程切入點(diǎn)org.springframework.aop.support.DynamicMethodMatcherPointcut動態(tài)方法匹配器切入點(diǎn)5
Aspect對AOP的支持Aspect概述Aspect即Spring中所說的切面,它是對象操作過程中的截面.AspectJ是Spring框架2.0版本之后增加的新特性,Spring使用了AspectJ提供的一個庫來完成切入點(diǎn)的解析和匹配。但是AOP在運(yùn)行時仍舊是純粹的SpringAOP,它并不依賴于AspectJ的編譯器或者織入器,在底層中使用的仍然是Spring2.0之前的實(shí)現(xiàn)體系。Spring中的AspectDefaultPointcutAdvisor切入點(diǎn)配置器DefaultPointcutAdvisor位于org.springframework.aop.support.DefaultPointcutAdvisor包下的默認(rèn)切入點(diǎn)通知者,它可以把一個通知配給一個切入點(diǎn),使用之前首先要創(chuàng)建一個切入點(diǎn)和通知。創(chuàng)建通知publicTestAdviceimplementsMethodInterceptor{publicObjectinvoke(MethodInvocationmi)throwsThrowable{ObjectVal=ceed();returnVal;}}創(chuàng)建切入點(diǎn)publicclassTestStaticPointcutextendsStaticMethodMatcherPointcut{publicbooleanmatches(MethodmethodClasstargetClass){return(“targetMethod”.equals(method.getName()));}publicClassFiltergetClassFilter(){returnnewClassFilter(){publicbooleanmatches(Classclazz){return(clazz==targetClass.class);}};}}6
Spring持久化DAO模式Spring提供了一套抽象的DAO類供開發(fā)人員擴(kuò)展,這有利于以統(tǒng)一的方式操作各種DAO技術(shù),DAO模式JdbcDaoSupportHibernateDAO抽象類,開發(fā)人員需要為其配置HibernateSessionFactory,通過其子類能夠獲得Hibernate實(shí)現(xiàn)HibernateDaoSupportHibernateDAO抽象類,開發(fā)人員需要為其配置HibernateSessionFactory,通過其子類能夠獲得Hibernate實(shí)現(xiàn)。JdoDaoSupportSpring為JDO提供的DAO抽象類,開發(fā)人員需要為它配置PersistenceManagerFactory,通過其子類能夠獲得JdoTemplate。事務(wù)管理Spring中的事務(wù)基于AOP實(shí)現(xiàn),而Spring的AOP以方法為單位,所以Spring的事務(wù)屬性是對事務(wù)應(yīng)用的方法的策略描述。這些屬性為傳播行為、隔離級別、只讀和超時屬性。編程式事務(wù)管理在Spring中主要有兩種編程式事務(wù)的實(shí)現(xiàn)方法,分別使用PlatformTransactionManager接口的事務(wù)管理器或TransactionTemplate實(shí)現(xiàn)。二者各有優(yōu)缺點(diǎn),推薦使用后者實(shí)現(xiàn)方式,因其符合Spring的模板模式。聲明式事務(wù)管理聲明式事務(wù)不涉及組建依賴關(guān)系,它通過AOP實(shí)現(xiàn)事務(wù)管理,在使用聲明式事務(wù)時不須編寫任何代碼即可通過實(shí)現(xiàn)基于容器的事務(wù)管理。Spring提供了一些可供選擇的輔助類,它們簡化了傳統(tǒng)的數(shù)據(jù)庫操作流程。在一定程度上節(jié)省了工作量,提高了編碼效率,所以推薦使用聲明式事務(wù)。應(yīng)用JdbcTemplate操作數(shù)據(jù)庫方法名稱說
明intQueryForInt(Stringsql)返回查詢的數(shù)量,通常是聚合函數(shù)數(shù)值intQueryForInt(Stringsql,Object[]args)longQueryForLong(Stringsql)返回查詢的信息數(shù)量longQueryForLong(Stringsql,Object[]args)ObjectqueryforObject(stringsql,ClassrequiredType)返回滿足條件的查詢對象ObjectqueryforObject(stringsql,ClassrequiredType,Object[]args)ListqueryForList(Stringsql)返回滿足條件的對象List集合ListqueryForList(Stringsql,Object[]args)JdbcTemplate類是Spring的核心類之一,可以在org.springframework.jdbc.core包中找到。該類在內(nèi)部已經(jīng)處理數(shù)據(jù)庫資源的建立和釋放,并可以避免一些常見的錯誤,如關(guān)閉連接及拋出異常等,因此使用JdbcTemplate類簡化了編寫JDBC時所需的基礎(chǔ)代碼。與Hibernate整合在Spring中整合Hibernate4時,已經(jīng)不再提供HibenateTemplate和HibernateDaoSupport類了,而只有一個稱為LocalSessionFactoryBean的SessionFactoryBean,通過它可以實(shí)現(xiàn)基于注解或是XML文件來配置映射文件。與Hibernate整合#數(shù)據(jù)庫驅(qū)動hibernate.connection.driver_class=com.mysql.jdbc.Driver#數(shù)據(jù)庫連接的URLhibernate.connection.url=jdbc:mysql://localhost:3306/test#用戶名hibernate.connection.username=root#密碼hibernate.connection.password=123456與Hibernate整合<!--引入配置文件--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <propertyname="locations"> <value>classpath:perties</value> </property></bean><beanid="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <propertyname="driverClassName"value="${hibernate.connection.driver_class}"/> <propertyname="url"value="${hibernate.connection.url}"/> <propertyname="username"value="${hibernate.connection.username}"/> <propertyname="password"value="${hibernate.connection.password}"/></bean>引入perties文件并配置數(shù)據(jù)源dataSource與Hibernate整合<beanid="sessionFactory" class="org.springframework.orm.hibernat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河北地質(zhì)大學(xué)第二次公開招聘工作人員65人備考題庫及一套參考答案詳解
- 2025年杭州濱蘭實(shí)驗(yàn)學(xué)校教師招聘備考題庫及答案詳解參考
- 2025年中國移動萊山分公司誠聘英才備考題庫及一套參考答案詳解
- 2025年招聘丨重慶農(nóng)投肉食品有限公司招聘備考題庫含答案詳解
- 2025年重慶工貿(mào)職業(yè)技術(shù)學(xué)院非事業(yè)編制全職人員招聘47人備考題庫帶答案詳解
- 術(shù)后電解質(zhì)異常的心理干預(yù)策略
- 禹州防腐木格柵施工方案
- 萬達(dá)商業(yè)管理集團(tuán)招聘面試題目及答案
- 同程旅行集團(tuán)招聘題庫及答案
- 術(shù)后妊娠合并卵巢患者的隨訪與管理方案
- 老年體質(zhì)與運(yùn)動測量(老年運(yùn)動保健課件)
- 初中道德與法治豐富的社會生活作業(yè)設(shè)計
- 2024年四川省成都市青羊區(qū)中考物理二診試卷
- 報表模板-土地增值稅清算申報表(自動計算申報表)可填寫數(shù)據(jù)
- 動物尸體剖檢(動物病理學(xué)課件)
- 國開作業(yè)《公共關(guān)系學(xué)》實(shí)訓(xùn)項(xiàng)目2:公關(guān)工作程序(六選一)參考(含答案)48
- 肌腱縫合技術(shù)
- 三位數(shù)除以兩位數(shù)300題-整除-有答案
- 視頻號精細(xì)化運(yùn)營手冊
- 客艙服務(wù)(空中乘務(wù)專業(yè))全套教學(xué)課件
- 2024年江蘇高中化學(xué)學(xué)業(yè)水平合格考試題真題匯編(含答案)
評論
0/150
提交評論