版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
講使用SpringAOP第10東華大學(xué)計算機(jī)學(xué)院丁祥武二0一0年十月的講使用SpringAOP第10東華大學(xué)計算機(jī)學(xué)院丁祥武二02本講內(nèi)容從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)常用設(shè)計模式與動態(tài)代理面向方面編程(AOP)Spring2.x對AOP的支持2本講內(nèi)容從企業(yè)應(yīng)用的思考23從企業(yè)應(yīng)用的思考企業(yè)應(yīng)用開發(fā)面臨的挑戰(zhàn)企業(yè)應(yīng)用的開發(fā)是相當(dāng)復(fù)雜的,這種復(fù)雜除了表現(xiàn)在技術(shù)方面外,還表現(xiàn)在行業(yè)本身。企業(yè)級應(yīng)用的開發(fā)往往需要面對更多的問題
—大量的并發(fā)訪問
—復(fù)雜的環(huán)境
—網(wǎng)絡(luò)的不穩(wěn)定
—還有外部的Crack行為等因此企業(yè)級應(yīng)用必須提供更好的多線程的支持,具備良好的適應(yīng)性及良好的安全性等。
3從企業(yè)應(yīng)用的思考企業(yè)應(yīng)用開發(fā)面臨的挑戰(zhàn)34從企業(yè)應(yīng)用的思考思考的方面可擴(kuò)展性、可伸縮性一個積極的軟件開發(fā)者應(yīng)該正確對待需求的變更。需求的變更表明有市場前景,只有有變化的產(chǎn)品才是有市場的產(chǎn)品。優(yōu)秀的企業(yè)級應(yīng)用必須具備良好的可擴(kuò)展性和可伸縮性。因為良好的可擴(kuò)展性允許系統(tǒng)動態(tài)增加新功能,而不會影響原有的功能。良好的可擴(kuò)展性建立在高度的解耦之上。在JEE應(yīng)用中,大多采用XML文件作為配置文件。使用XML配置文件可以避免修改代碼,從而能極好地提高程序的解耦。
4從企業(yè)應(yīng)用的思考思考的方面45從企業(yè)應(yīng)用的思考思考的方面快捷、可控的開發(fā)如果沒有時間限制,任何一個軟件系統(tǒng)在理論上都是可實現(xiàn)的。但這樣的條件不存在,軟件系統(tǒng)必須要及時投放市場。對于企業(yè)級應(yīng)用,時間的限制則更加嚴(yán)格。企業(yè)的信息是瞬息萬變的,與之對應(yīng)的系統(tǒng)必須能與時俱進(jìn)。因而采用新技術(shù)的問題,樂于與風(fēng)險。因此快捷、可控是企業(yè)信息化系統(tǒng)必須面對的挑戰(zhàn)。5從企業(yè)應(yīng)用的思考思考的方面56從企業(yè)應(yīng)用的思考思考的方面穩(wěn)定性、高效性企業(yè)級應(yīng)用的一個顯著特點:并發(fā)訪問量大,訪問頻繁。因此穩(wěn)定性、高效性是企業(yè)級信息化系統(tǒng)必須達(dá)到的要求。企業(yè)級應(yīng)用必須有優(yōu)秀的性能,如采用緩沖池的技術(shù)——保存那些創(chuàng)建開銷大的對象(典型的應(yīng)用是數(shù)據(jù)連接池)、數(shù)據(jù)緩存。6從企業(yè)應(yīng)用的思考思考的方面67從企業(yè)應(yīng)用的思考思考的方面花費最小化,利益最大化—永恒的話題任何一個商業(yè)組織都希望盡可能地降低開銷。對開發(fā)者而言,降低開銷主要是如何使在開發(fā)上的投資更有保值效果。即開發(fā)的軟件系統(tǒng)具有很好的復(fù)用性。在良好的JEE架構(gòu)設(shè)計中,復(fù)用是一個永恒的追求目標(biāo)。架構(gòu)設(shè)計師希望系統(tǒng)中大部分的組件可以復(fù)用,甚至能讓系統(tǒng)的整個層可以復(fù)用。對于采用DAO模式的系統(tǒng)架構(gòu),如果數(shù)據(jù)庫不發(fā)生大的改變,整個DAO層都不需要變化。7從企業(yè)應(yīng)用的思考思考的方面78本講內(nèi)容從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)常用設(shè)計模式與動態(tài)代理面向方面編程(AOP)Spring2.x對AOP的支持8本講內(nèi)容從企業(yè)應(yīng)用的思考89從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)使用建模工具建模工具不一定是ROSE等,可以是簡單的手畫草圖。當(dāng)然,借助于專業(yè)的建模工具可以更好地確定系統(tǒng)模型。任何語言的描述都是很空洞,而且具有很大的歧義性。使用圖形則更加直觀,而且意義更加明確。關(guān)于建模工具,推薦采用統(tǒng)一建模語言:UML。但UML的使用也需要掌握分寸。在軟件開發(fā)人員內(nèi)部使用時,盡可能使用規(guī)范的UML;但用于與行業(yè)專家溝通時,要輔助文字說明。9從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)910從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)利用優(yōu)秀的框架使用框架可以大大提高系統(tǒng)的開發(fā)效率。除非開發(fā)一個非常小的系統(tǒng),而且是開發(fā)后無須修改的系統(tǒng),才可以完全拋棄框架。好處:1.提高生產(chǎn)效率2.具有更穩(wěn)定、更優(yōu)秀的性能如果不使用已有的框架,系統(tǒng)開發(fā)者將面臨著需要自己完成所有的底層部分。除非開發(fā)者絲毫不遵守軟件復(fù)用的原則,總是重復(fù)書寫相同代碼。3.更好的保值性10從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)1011從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)選擇性地擴(kuò)展軟件的需求千變?nèi)f化,任何框架不可能總是那么完美,難免需要擴(kuò)展現(xiàn)有的框架。對已有的框架進(jìn)行擴(kuò)展,則可最大限度地利用已有的框架,但是不要盲目擴(kuò)展現(xiàn)有框架,因為新增的部分有時會引入新的風(fēng)險。盡量利用已有組件,除非無法使用已有框架時,才考慮選擇性地擴(kuò)展。11從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)1112從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)使用代碼生成器使用代碼生成器可以自動生成部分程序。12從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)1213本講內(nèi)容從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)常用設(shè)計模式與動態(tài)代理面向方面編程(AOP)Spring2.x對AOP的支持13本講內(nèi)容從企業(yè)應(yīng)用的思考1314從企業(yè)應(yīng)用的思考常用的設(shè)計模式及應(yīng)用單態(tài)模式的使用在任何不需要重復(fù)生成Java實例的場景中,都應(yīng)該考慮使用單態(tài)模式。使用單態(tài)模式可以保證系統(tǒng)無須生成多個Java實例,從而減少內(nèi)存占用率,也降低JVM(Java虛擬機(jī))進(jìn)行垃圾回收的開銷。單態(tài)模式通常有如下兩個使用場景:
1.工廠模式中的工廠(工廠不要重復(fù)生產(chǎn)產(chǎn)品)。2.使用服務(wù)定位器模式時的服務(wù)定位器(盡量找)。14從企業(yè)應(yīng)用的思考常用的設(shè)計模式及應(yīng)用1415從企業(yè)應(yīng)用的思考常用的設(shè)計模式及應(yīng)用代理模式的使用傳統(tǒng)的代理模式主要用于用簡單對象來代替復(fù)雜的對象,如果創(chuàng)建一個對象所需的時間比較長,且計算資源相當(dāng)昂貴,可以采用一個相對簡單的對象來代替它。代理模式可將創(chuàng)建過程推遲到真正需要該對象時完成,一旦整個對象創(chuàng)建成功,對代理的方法調(diào)用將變成對實際對象的方法調(diào)用。15從企業(yè)應(yīng)用的思考常用的設(shè)計模式及應(yīng)用1516從企業(yè)應(yīng)用的思考常用的設(shè)計模式及應(yīng)用代理模式的使用JavaEE中的代理模式通常是采用功能更強(qiáng)大的對象來代替目標(biāo)對象。例如,對于普通的業(yè)務(wù)邏輯組件,其方法都應(yīng)該有事務(wù)性,但這種開始事務(wù)和結(jié)束事務(wù)都是通用步驟。因此原始業(yè)務(wù)邏輯對象的方法可以無須事務(wù)操作,而是由系統(tǒng)生成動態(tài)代理,調(diào)用實際的目標(biāo)方法并負(fù)責(zé)事務(wù)操作。16從企業(yè)應(yīng)用的思考常用的設(shè)計模式及應(yīng)用1617從企業(yè)應(yīng)用的思考對象由工廠產(chǎn)生。工廠作為代理處理器,對產(chǎn)生的對象增加事務(wù)處理代碼或安全處理代碼。主要是對對象中的方法增加事務(wù)處理代碼。可以在處理器中硬編碼,對方法增加代碼。通用的代理處理器,該處理器并不需要與任何特定的目標(biāo)對象耦合。為了該代理處理器有更好的適應(yīng)性,系統(tǒng)可以將需要增加事務(wù)操作的方法以XML文件配置,而該代理處理器負(fù)責(zé)解析XML文檔,根據(jù)配置決定對哪個方法增加事務(wù)處理。17從企業(yè)應(yīng)用的思考對象由工廠產(chǎn)生。1718從企業(yè)應(yīng)用的思考動態(tài)代理在運行時,能夠動態(tài)實現(xiàn)指定接口的機(jī)制,從而生成新的類。動態(tài)代理是JDK1.3引入的。開發(fā)者需要借助于java.lang.reflect.Proxy類來啟用代理。為某對象創(chuàng)建代理后,所有對被代理對象的請求都經(jīng)過代理的處理,即代理攔截了客戶的請求。為創(chuàng)建動態(tài)代理,開發(fā)者需要借助Proxy提供的newProxyInstance()方法,并將定義代理類的類裝載器、代理實現(xiàn)的接口集合、InvocationHandle傳入這一靜態(tài)方法。18從企業(yè)應(yīng)用的思考動態(tài)代理1819本講內(nèi)容從企業(yè)應(yīng)用的思考如何應(yīng)對挑戰(zhàn)常用設(shè)計模式與動態(tài)代理面向方面編程(AOP)Spring2.x對AOP的支持19本講內(nèi)容從企業(yè)應(yīng)用的思考1920AOP概述AOP(AspectOrientedProgramming)的背景知識為滿足整個企業(yè)應(yīng)用某方面的需求,開發(fā)者(架構(gòu)師)需要整理出系統(tǒng)的關(guān)注點,如下圖形象地描述了關(guān)注點。20AOP概述AOP(AspectOrientedPro2021比如:事務(wù)管理、安全性管理、應(yīng)用的業(yè)務(wù)邏輯都是應(yīng)用需要重點解決的問題。被作為關(guān)注點看待。整個系統(tǒng)由大量的關(guān)注點構(gòu)成。21比如:2122AOP概述關(guān)注點分類大體而言,關(guān)注點分為兩類:核心關(guān)注點主要關(guān)注系統(tǒng)的業(yè)務(wù)邏輯;橫切關(guān)注點主要關(guān)注系統(tǒng)級的服務(wù),供業(yè)務(wù)邏輯使用。關(guān)注點核心關(guān)注點橫切關(guān)注點22AOP概述關(guān)注點分類關(guān)注點核心關(guān)注點橫切關(guān)注點2223AOP概述現(xiàn)實狀態(tài)業(yè)務(wù)邏輯中,到處都涉及橫切關(guān)注點。因此對各個已經(jīng)實現(xiàn)的模塊(業(yè)務(wù)邏輯)而言,都有大量的橫切關(guān)注點實現(xiàn)。新的方案業(yè)務(wù)邏輯用OO技術(shù)實現(xiàn);橫切關(guān)注點用AOP技術(shù)實現(xiàn);橫切關(guān)注點是系統(tǒng)級服務(wù),對大部分應(yīng)用是常見的,容易抽象出來,并加以實現(xiàn)。23AOP概述現(xiàn)實狀態(tài)2324AOP概述實現(xiàn)AOP的總體模式OO技術(shù)將應(yīng)用中的核心關(guān)注點分解成由層次(繼承)結(jié)構(gòu)組成的領(lǐng)域?qū)ο蠹?。AOP將應(yīng)用中的橫切關(guān)注點分解成由切面(Aspect)組成的生態(tài)子系統(tǒng)。它們被分別實現(xiàn),互為補充,使得應(yīng)用的開發(fā)變得簡單、可維護(hù)性得到增強(qiáng)。24AOP概述實現(xiàn)AOP的總體模式2425AOP概述實現(xiàn)AOP的總體模式為實現(xiàn)單個橫切關(guān)注點,開發(fā)者需要采用若干切面滿足它。比如為實現(xiàn)安全性控制橫切關(guān)注點,開發(fā)者需要提供用戶論證切面、用戶授權(quán)切面。25AOP概述實現(xiàn)AOP的總體模式2526AOP的基本概念各種AOP實現(xiàn)切面的技術(shù)、框架、機(jī)制、手段可能不同,但是AOP技術(shù)的基本概念是相同的。包括以下7個術(shù)語:連接點(joinpoint)切入點(cutpoint)裝備(advice)引入(introduction)目標(biāo)對象(targetobject)織入(weaving)和切面(Aspect)。26AOP的基本概念各種AOP實現(xiàn)切面的技術(shù)、框架、機(jī)制、手2627AOP的基本概念連接點(Joinpoint)連接點指應(yīng)用(目標(biāo)對象)執(zhí)行的某個點,如執(zhí)行到某個方法、訪問到某個成員變量、拋出某異常、裝載某個類。通常用連接點的強(qiáng)弱來衡量AOP實現(xiàn)的強(qiáng)弱。Aspect5實現(xiàn)的連接點類型非常多,SpringAOP僅支持方法級連接點。27AOP的基本概念連接點(Joinpoint)2728AOP概念切入點(pointcut)通過切入點能夠聲明、集結(jié)連接點。通常裝備與切入點關(guān)聯(lián)在一起,一旦某連接點被觸發(fā),則會立即執(zhí)行相應(yīng)的裝備。開發(fā)者借助于pointcut表達(dá)語言來完成pointcut的指定工作。28AOP概念切入點(pointcut)2829AOP概念裝備(Advice)裝備指切面(aspect)在特定連接點所采取的動作。特定連接點由切入點(pointcut)指定。主要的裝備類型包括:Before、AfterReturning、AfterThrowing、After、Around。Before裝備能夠在特定連接點被觸發(fā)前執(zhí)行,如方法執(zhí)行前執(zhí)行的裝備。其它類似。29AOP概念裝備(Advice)2930AOP概念引入(introducion)引入也稱為inter-type聲明(AspectJ5)。將新的接口、方法、成員變量動態(tài)引入到目標(biāo)類、接口或切面中。目標(biāo)對象(targetObject)被若干切面(aspect)裝配過的對象,也被稱為被裝備的對象。30AOP概念引入(introducion)3031AOP概念織入(weaving)將切面(Aspect)與目標(biāo)對象組裝在一起的過程稱為織入。通過織入創(chuàng)建一個被裝備的對象??椚霑r機(jī)有編譯期、裝載期、運行期。不同的AOP實現(xiàn)支持不同織入時機(jī)。如SpringAOP支持運行期織入;AspectJ5支持編譯期和類裝載期(Load-Time)織入。31AOP概念織入(weaving)3132AOP概念切面(aspect)與OOP中對象的概念一樣,是AOP中的核心概念。切面將pointcut、裝備、引入、目標(biāo)對象等信息集結(jié)在一起,從而定義相應(yīng)的織入規(guī)則,這樣一個整體稱為切面(aspect)。32AOP概念切面(aspect)3233Spring對AOP的支持AOP是一種流行的編程模型;AOP的編程思想與OOP不同,是對OOP的一種強(qiáng)有力的補充;通過AOP,能更好地實現(xiàn)模塊化結(jié)構(gòu),或者能動態(tài)地為系統(tǒng)增加新功能而不影響原系統(tǒng)的結(jié)構(gòu).33Spring對AOP的支持AOP是一種流行的編程模型;3334SpringAOP概述AOP允許開發(fā)者動態(tài)地修改OOP定義的靜態(tài)模型,即不用修改原來的OO模型,甚至可以不修改OO代碼本身,即可完成對橫切面問題的解決。比如,將系統(tǒng)中處理日志、安全性、事務(wù)及其他企業(yè)級服務(wù)集中放置在一個地方。因此AOP使得OOP中的重復(fù)代碼能夠大范圍減少。34SpringAOP概述3435Spring框架介紹Spring就是一個實現(xiàn)了AOP功能的IOC容器Spring2.0內(nèi)核(IoC容器)SpringAOPSpringDAOSpringORMSpringWebSpringWebMVCSpringContextSpring框架包含的7個主要模塊35Spring框架介紹Spring就是一個實現(xiàn)了AOP功能3536SpringAOPSpingAOP基于IoC,是對OOP的有益補充.SpingAOP將應(yīng)用系統(tǒng)分為兩部分,核心業(yè)務(wù)邏輯及橫向的通用邏輯,即方面(Aspect)。比如大型應(yīng)用中涉及的持久化管理、事務(wù)管理、安全管理、日志管理和調(diào)試管理。使用AOP可以將處理Aspect的代碼注入主程序,AOP可以防止代碼混亂。36SpringAOPSpingAOP基于IoC,是對3637Spring對AOP的支持Spring的AOP模塊實現(xiàn)了AOP聯(lián)盟定義的AOP接口的實現(xiàn);利用Spring提供的AOP,可以簡化代碼邏輯,分離應(yīng)用程序的關(guān)注點;Spring提供的許多低層服務(wù)(如對聲明式事務(wù)的管理的支持)是基于AOP實現(xiàn)的;與其它AOP框架不同,Spring的思想仍然建立在IoC之上,即AOP本身也是以Bean的方式在Spring的IoC容器中裝配起來的。37Spring對AOP的支持Spring的AOP模塊實現(xiàn)了3738Spring的設(shè)計思想Spring的設(shè)計思想工廠模式和更好的singleton(單例)解決方案使用工廠模式創(chuàng)建對象比用new更加容易,因為工廠向客戶端隱藏了創(chuàng)建對象的復(fù)雜細(xì)節(jié);可以使用Spring提供的工廠類,也可以自己編寫工廠類并納入容器統(tǒng)一管理。單一實例的對象,其生命周期貫穿整個應(yīng)用程序。如采用singleton模式,必須為每個單實例實現(xiàn)復(fù)雜的singleton模式;Spring實現(xiàn)了更容易的管理方法,將單實例納入Spring的IoC容器,由IoC容器保證對象的單實例38Spring的設(shè)計思想Spring的設(shè)計思想3839SpringAOP的基本概念Spring使用動態(tài)代理實現(xiàn)AOP技術(shù)。39SpringAOP的基本概念Spring使用動態(tài)代理實39實例—HibernateDaoSupport類DAO(如UserDAO)通常繼承HibernateDaoSupport類這樣的DAO具有Spring封裝Hibernate操作數(shù)據(jù)庫的完全功能(自動生成基本CURD操作的代碼)。繼承的目的是讓Spring管理事務(wù)并且使DAO具有面向接口編程的特點而且在Spring的管理下,數(shù)據(jù)庫連接的打開和關(guān)閉,事務(wù)的處理也都變成自動化了。40實例—HibernateDaoSupport類DAO(如Us40實例—HibernateDaoSupport類HibernateDaoSupport提供了基于AOP的自動事務(wù)處理,程序員完全可以不用理會事務(wù)的開始與提交。在使用JDBC的一個Connection對象中使用一個事務(wù)時,在Hibernate中對應(yīng)的事務(wù)要關(guān)聯(lián)一個SessionFactory。然而這個SessionFactory卻沒有在DAO中體現(xiàn)。41實例—HibernateDaoSupport類Hibern41實例—HibernateDaoSupport類原因是HibernateDaoSupport類做了封裝,它用一個setSessionFactory方法將SessionFactory進(jìn)行注入。42實例—HibernateDaoSupport類原因是Hibe42實例—HibernateDaoSupport類所以繼承自HibernateDaoSupport類的DAO都會具有SessionFactory的屬性,從而可以通過SessionFactory創(chuàng)建Session實例操作數(shù)據(jù)庫。43實例—HibernateDaoSupport類4343實例—HibernateDaoSupport類雖然有set方法,但在哪注入的呢?當(dāng)然是IoC容器根據(jù)applicationContext.xml注入?!?
<beanid="userDAO"class="com.dao.impl.UserDAOImpl"><propertyname="sessionFactory"><reflocal="sessionFactory"/></property></bean>44實例—HibernateDaoSupport類雖然有set方44實例—HibernateDaoSupport類IoC容器自動將創(chuàng)建的DAO注入了sessionFactory的對象,所以DAO對象就具有了通過Hibernate操作數(shù)據(jù)庫的功能。45實例—HibernateDaoSupport類IoC容器自動45實例—HibernateDaoSupport類另外,要使用hibernate的模板必須繼承HibernateDaoSupport這個類。46實例—HibernateDaoSupport類另外,要使用h46結(jié)束語
終實驗報告格式47結(jié)束語終474748AOP概念裝備的類型Before裝備即在執(zhí)行目標(biāo)操作(如調(diào)用某方法、讀取或設(shè)置變量取值)之前執(zhí)行的裝備。48AOP概念裝備的類型4849AOP概念實例在某項目中提供了test.DisPersonInfo1.java類,暴露了兩個compute()方法。49AOP概念實例4950publicclassDisPersonInfo1{privatestaticfinalLoglog=LogFactory.getLog(DisPersonInfo1.class);publicstaticvoidcompute(Stringperson){
log.info(person);}publicstaticvoidcompute(Stringperson,intage){
log.info(person+"已經(jīng)"+age+"歲了!");}}50publicclassDisPersonInfo15051publicclassMainTest{privatestaticfinalLoglog=LogFactory.getLog(MainTest.class);publicstaticvoidmain(String[]args){
log.info("MainTestmain()………");DisPersonInfo1.compute("Picart");DisPersonInfo1.compute("Picart",30);}}
51publicclassMainTest{51522008-10-2022:01:43MainTestmain信息:MainTestmain()………2008-10-2022:01:43DisPersonInfo1compute信息:Picart2008-10-2022:01:43DisPersonInfo1compute信息:Picart已經(jīng)30歲了!522008-10-2022:01:43MainTest5253//一個AspectJ5切面實現(xiàn)AspectJAop.aj(可以是.java)publicaspectAspectJAop{privatestaticfinalLoglog=LogFactory.getLog(AspectJAop.class);pointcutxx():execution(*DisPersonIpute(..));before:xx(){(“AspectJAop@Before”);}}53//一個AspectJ5切面實現(xiàn)AspectJAop.5354關(guān)于該切面實現(xiàn)AspectJ5的切入點pointcut也是bean對象。通過pointcut關(guān)鍵字定義了名為xx()的pointcut;xx()pointcut通過關(guān)鍵字execution集結(jié)了相應(yīng)的連接點(joinpoint),即執(zhí)行Di
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國酸奶袋市場調(diào)查研究報告
- 高三動員大會語文老師的個人發(fā)言稿4篇
- 國際進(jìn)口貿(mào)易合同范例
- 保溫工程收購合同范例
- 婚紗租售婚慶合同模板
- 學(xué)校與企業(yè)實習(xí)合同范例
- 商場臨時攤位合同范例
- 大棚材料銷售合同模板
- 定制個人服務(wù)合同范例
- 共享賓館售賣合同范例
- 遼寧省大連市金普新區(qū)2024-2025學(xué)年七年級上學(xué)期11月期中英語試題(無答案)
- 生態(tài)文明學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 區(qū)病案質(zhì)控中心匯報
- 期中測試卷(1-4單元)(試題)2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
- 教育局職業(yè)院校教師培訓(xùn)實施方案
- 《萬維網(wǎng)服務(wù)大揭秘》課件 2024-2025學(xué)年人教版新教材初中信息技術(shù)七年級全一冊
- 2024年新華社招聘應(yīng)屆畢業(yè)生及留學(xué)回國人員129人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 人教版(2024新版)七年級上冊英語Unit 5單元測試卷(含答案)
- 美食行業(yè)外賣平臺配送效率提升方案
- 中國民用航空局信息中心招聘筆試題庫2024
- 2025屆高考語文一輪復(fù)習(xí):文言文概括和分析 課件
評論
0/150
提交評論