版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Spring.NET框架應(yīng)用及優(yōu)劣勢(shì)探討信息工程事業(yè)部袁洋 2012.12Spring.Net框架探討內(nèi)容目錄第一部分簡(jiǎn)單的介紹Spring.NET第二部分為何要使用Spring.Net框架第三部分Spring.Net各功能的探討簡(jiǎn)單的介紹Spring.NETSpring.Net框架介紹Spring.Net模塊介紹第一部分Spring.NET框架簡(jiǎn)介Spring.NET是一個(gè)應(yīng)用程序框架,其目的是協(xié)助開(kāi)發(fā)人員創(chuàng)建企業(yè)級(jí)的.NET應(yīng)用程序。它提供了很多方面的功能,比如依賴注入、面向方面編程(AOP)、數(shù)據(jù)訪問(wèn)抽象及ASP.NET擴(kuò)展等等。Spring.NET以Java版的Spring框架為基礎(chǔ),
2、將Spring.Java的核心概念與思想移植到了.NET平臺(tái)上。Spring.Net框架特點(diǎn)輕量從大小與開(kāi)銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的DLL文件里發(fā)布。并且Spring所需的處理開(kāi)銷也是微不足道的。非侵入 在應(yīng)用中,一般不需要引用spring包里的類??刂品崔D(zhuǎn)Spring通過(guò)一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,某一接口的具體實(shí)現(xiàn)類的選擇控制權(quán)從調(diào)用類中移除,轉(zhuǎn)交給第三方裁決。 面向切面Spring提供了面向切面編程的豐富支持,允許通過(guò)分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)進(jìn)行內(nèi)聚性的開(kāi)發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的完成
3、業(yè)務(wù)邏輯僅此而已。它們并不負(fù)責(zé)其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。Spring即是一個(gè)容器又是一個(gè)框架。容器Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)Object如何被創(chuàng)建,你的Object可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例以及它們是如何相互關(guān)聯(lián)的。 框架Spring提供了很多基礎(chǔ)的與業(yè)務(wù)邏輯無(wú)關(guān)的功能,比如:事務(wù)管理、持久化框架集成等等,使用Spring框架,開(kāi)發(fā)人員可以專注于業(yè)務(wù)邏輯開(kāi)發(fā),這個(gè)意義上講它是一個(gè)框架。 Spring.Net模塊介紹Spring.NET框架包含了許多功能方面,各核心模塊如圖所示:Sprin
4、g.Net核心模塊介紹Spring.Core作為整個(gè)框架的基礎(chǔ),實(shí)現(xiàn)了依賴注入的功能。Spring.NET的大部分模塊都要依賴或擴(kuò)展該模塊。Spring.Core的基礎(chǔ)是IObjectFactory接口,該接口用一個(gè)簡(jiǎn)單而優(yōu)雅的方式實(shí)現(xiàn)了工廠模式,使我們可以無(wú)需自行編寫(xiě)singleton類型和眾多的服務(wù)定位器,并允許將對(duì)象配置及其依賴關(guān)系與具體的程序邏輯解耦。該模塊中的IApplicationContext接口是IObjectFactory的擴(kuò)展,增加了諸多企業(yè)級(jí)功能,包括使用資源文件進(jìn)行文本本地化、事件傳播和資源裝載等等。Spring.Net模塊介紹Spring.AOP為業(yè)務(wù)對(duì)象提供面向方面
5、編程(AOP)的支持。AOP完善了IoC容器的功能,為創(chuàng)建企業(yè)應(yīng)用和使用聲明式服務(wù)奠定了堅(jiān)實(shí)的基礎(chǔ)。Spring.Data定義了一個(gè)抽象的數(shù)據(jù)訪問(wèn)層,可以跨越各種數(shù)據(jù)訪問(wèn)技術(shù)(從ADO.NET到各種ORM)進(jìn)行數(shù)據(jù)訪問(wèn)。該模塊包含一個(gè)ADO.NET的抽象層,減少了使用傳統(tǒng)ADO.NET進(jìn)行編碼和事務(wù)管理時(shí)的工作量。Spring.Data.NHibernate使用此模塊集成到Spring的聲明式事務(wù)管理功能NHibernate的能容易地操作ADO.NET和NHibernate的混合在同一事務(wù)。 NHibernate的1.0用戶將受益于易于使用的API來(lái)執(zhí)行數(shù)據(jù)訪問(wèn)操作。Spring.Net模塊介
6、紹Spring.Web使用此模塊,以抽象方式編寫(xiě)ASP.NET Web應(yīng)用程序時(shí)允許你有效地解決共同的棘手問(wèn)題,如在ASP.NET數(shù)據(jù)綁定,驗(yàn)證和ASP.NET母板頁(yè)、控件、模塊、驅(qū)動(dòng)配置。Spring.Web.Extensions 使用此模塊,可以輕松公開(kāi)一個(gè)平原。NET對(duì)象(PONO),這是一個(gè)沒(méi)有任何屬性或特殊基類作為Web Service,通過(guò)依賴注入配置,應(yīng)用AOP,并暴露在客戶端的JavaScript。Spring.Services - 使用此模塊,以適應(yīng)平原。使他們能夠與特定的分布式通信技術(shù)等。NET Remoting的,企業(yè)服務(wù),ASMX Web Service,和WCF服務(wù),
7、使用NET對(duì)象。這些服務(wù)可以通過(guò)依賴注入配置和應(yīng)用AOP。Spring.Net模塊介紹Spring.Testing.NUnit - 使用此模塊進(jìn)行整合NUnit的測(cè)試。Spring.Messaging - 使用此模塊,以提您高效的創(chuàng)建Microsoft消息隊(duì)列(MSMQ)應(yīng)用程序堅(jiān)實(shí)基礎(chǔ)的最佳做法。Spring.Scheduling.Quartz - 提供與Quartz.NET工作提供Quartz jobs,調(diào)度聲明配置調(diào)度一體化,觸發(fā)器以及一些方便的類以提高生產(chǎn)率在建立工作調(diào)度應(yīng)用。為何要使用Spring.Net框架IOC理論的背景及概念I(lǐng)OC為我們帶來(lái)了什么好處IOC容器的一些產(chǎn)品使用IO
8、C框架應(yīng)該注意什么第二部分IOC理論的背景我們都知道,在采用面向?qū)ο蠓椒ㄔO(shè)計(jì)的軟件系統(tǒng)中,它的底層實(shí)現(xiàn)都是由N個(gè)對(duì)象組成的,所有的對(duì)象通過(guò)彼此的合作,最終實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯。齒輪組中齒輪之間的嚙合關(guān)系,與軟件系統(tǒng)中對(duì)象之間的耦合關(guān)系非常相似。 IOC理論的背景及概念伴隨著工業(yè)級(jí)應(yīng)用的規(guī)模越來(lái)越龐大,對(duì)象之間的依賴關(guān)系也越來(lái)越復(fù)雜,經(jīng)常會(huì)出現(xiàn)對(duì)象之間的多重依賴性關(guān)系。架構(gòu)師和設(shè)計(jì)師對(duì)于系統(tǒng)的分析和設(shè)計(jì),將面臨更大的挑戰(zhàn)!對(duì)象之間耦合度過(guò)高的系統(tǒng),必然會(huì)出現(xiàn)牽一發(fā)而動(dòng)全身的情形!IOC理論的背景及概念如何降低系統(tǒng)之間、模塊之間和對(duì)象之間的耦合度,是軟件工程永遠(yuǎn)追求的目標(biāo)之一。為了解決對(duì)象之間的耦合
9、度過(guò)高的問(wèn)題,軟件專家Michael Mattson提出了IOC理論,用來(lái)實(shí)現(xiàn)對(duì)象之間的“解耦” 最熱門(mén)的IOC框架技術(shù)Spring應(yīng)運(yùn)而生。IOC理論的背景及概念I(lǐng)OC是Inversion of Control(控制反轉(zhuǎn))的縮寫(xiě)。簡(jiǎn)單來(lái)說(shuō)就是把復(fù)雜系統(tǒng)分解成相互合作的對(duì)象,這些對(duì)象類通過(guò)封裝以后,內(nèi)部實(shí)現(xiàn)對(duì)外部是透明的,從而降低了解決問(wèn)題的復(fù)雜度,而且可以靈活地被重用和擴(kuò)展。借助于“第三方”實(shí)現(xiàn)具有依賴關(guān)系的對(duì)象之間的解耦。全部對(duì)象的控制權(quán)全部上繳給“第三方”IOC容器!IOC理論的背景及概念I(lǐng)OC容器成了整個(gè)系統(tǒng)的關(guān)鍵核心,它起到了一種類似“粘合劑”的作用,把系統(tǒng)中的所有對(duì)象粘合在一起發(fā)揮
10、作用,如果沒(méi)有這個(gè)“粘合劑”,對(duì)象與對(duì)象之間會(huì)彼此失去聯(lián)系,這就是有人把IOC容器比喻成“粘合劑”的由來(lái)。這時(shí)候,A、B、C、D這4個(gè)對(duì)象之間已經(jīng)沒(méi)有了耦合關(guān)系,彼此毫無(wú)聯(lián)系,這樣的話,當(dāng)你在實(shí)現(xiàn)A的時(shí)候,根本無(wú)須再去考慮B、C和D了,對(duì)象之間的依賴關(guān)系已經(jīng)降低到了最低程度。IOC理論的背景及概念I(lǐng)OC的別名:依賴注入(DI)所謂依賴注入,就是由IOC容器在運(yùn)行期間,動(dòng)態(tài)地將某種依賴關(guān)系注入到對(duì)象之中。 依賴注入(DI)和控制反轉(zhuǎn)(IOC)是從不同的角度的描述的同一件事情,就是指通過(guò)引入IOC容器,利用依賴關(guān)系注入的方式,實(shí)現(xiàn)對(duì)象之間的解耦。IOC理論的背景及概念對(duì)象A依賴于對(duì)象B,當(dāng)對(duì)象 A
11、需要用到對(duì)象B的時(shí)候,IOC容器就會(huì)立即創(chuàng)建一個(gè)對(duì)象B送給對(duì)象A。IOC容器就是一個(gè)對(duì)象制造工廠,你需要什么,它會(huì)給你送去,你直接使用就行了,而再也不用去關(guān)心你所用的東西是如何制成的,也不用關(guān)心最后是怎么被銷毀的,這一切全部由IOC容器包辦。當(dāng)電腦主機(jī)讀取文件的時(shí)候,我就把它所要依賴的外部設(shè)備,幫他掛接上。整個(gè)外部設(shè)備注入的過(guò)程和一個(gè)被依賴的對(duì)象在系統(tǒng)運(yùn)行時(shí)被注入另外一個(gè)對(duì)象內(nèi)部的過(guò)程完全一樣。依賴注入(DI)IOC為我們帶來(lái)了什么好處第一、USB設(shè)備作為電腦主機(jī)的外部設(shè)備,在插入主機(jī)之前,與電腦主機(jī)沒(méi)有任何的關(guān)系,只有被我們連接在一起之后,兩者才發(fā)生聯(lián)系,具有相關(guān)性。第二、USB設(shè)備和電腦主
12、機(jī)的之間無(wú)關(guān)性,還帶來(lái)了另外一個(gè)好處,生產(chǎn)USB設(shè)備的廠商和生產(chǎn)電腦主機(jī)的廠商完全可以是互不相干的人,各干各事,他們之間唯一需要遵守的就是USB接口標(biāo)準(zhǔn)。以USB設(shè)備為例IOC為我們帶來(lái)了什么好處第三、同一個(gè)USB外部設(shè)備可以插接到任何支持USB的設(shè)備,可以插接到電腦主機(jī),也可以插接到DV機(jī),USB外部設(shè)備可以被反復(fù)利用。第四、同USB外部設(shè)備一樣,模塊具有熱插拔特性。IOC容器的一些產(chǎn)品Sun ONE技術(shù)體系下的IOC容器有:輕量級(jí)的有Spring、Guice、Pico Container、Avalon、HiveMind;重量級(jí)的有EJB;不輕不重的有JBoss,Jdon等等。Spring框
13、架作為Java開(kāi)發(fā)中SSH(Struts、Spring、Hibernate)三劍客之一,大中小項(xiàng)目中都有使用,非常成熟,應(yīng)用廣泛,EJB在關(guān)鍵性的工業(yè)級(jí)項(xiàng)目中也被使用,比如某些電信業(yè)務(wù)。.Net技術(shù)體系下的IOC容器有:Spring.Net、Castle等等。Spring.Net是從Java的Spring移植過(guò)來(lái)的IOC容器,Castle的IOC容器就是Windsor部分。它們均是輕量級(jí)的框架,比較成熟,其中Spring.Net已經(jīng)被逐漸應(yīng)用于各種項(xiàng)目中。使用IOC框架應(yīng)該注意什么第一、軟件系統(tǒng)中由于引入了第三方IOC容器,生成對(duì)象的步驟變得有些復(fù)雜,本來(lái)是兩者之間的事情,又憑空多出一道手續(xù),
14、所以,我們?cè)趧傞_(kāi)始使用IOC框架的時(shí)候,會(huì)感覺(jué)系統(tǒng)變得不太直觀。所以,引入了一個(gè)全新的框架,就會(huì)增加團(tuán)隊(duì)成員學(xué)習(xí)和認(rèn)識(shí)的培訓(xùn)成本,并且在以后的運(yùn)行維護(hù)中,還得讓新加入者具備同樣的知識(shí)體系。第二、由于IOC容器生成對(duì)象是通過(guò)反射方式,在運(yùn)行效率上有一定的損耗。如果你要追求運(yùn)行效率的話,就必須對(duì)此進(jìn)行權(quán)衡。使用IOC框架應(yīng)該注意什么第三、具體到IOC框架產(chǎn)品(比如:Spring)來(lái)講,需要進(jìn)行大量的配制工作,比較繁瑣,對(duì)于一些小的項(xiàng)目而言,客觀上也可能加大一些工作成本。第四、IOC框架產(chǎn)品本身的成熟度需要進(jìn)行評(píng)估,如果引入一個(gè)不成熟的IOC框架產(chǎn)品,那么會(huì)影響到整個(gè)項(xiàng)目,所以這也是一個(gè)隱性的風(fēng)險(xiǎn)。
15、IOC控制反轉(zhuǎn)AOP切面編程Transaction事務(wù)管理第三部分Spring.Net各功能的探討IOC控制反轉(zhuǎn)控制反轉(zhuǎn)(Inversion of Control,英文縮寫(xiě)為IOC),也叫依賴注入(Dependency Injection)。我個(gè)人認(rèn)為控制反轉(zhuǎn)的意思是依賴對(duì)象(控制權(quán))發(fā)生轉(zhuǎn)變,由最初的類本身來(lái)管理依賴對(duì)象轉(zhuǎn)變?yōu)镮OC框架來(lái)管理這些對(duì)象,使得依賴脫離類本身的控制,從而實(shí)現(xiàn)松耦合。AOP切面編程面向切面編程 (也叫面向方面):Aspect Oriented Programming(AOP),是目前軟件開(kāi)發(fā)中的一個(gè)熱點(diǎn),也是Spring框架中的一個(gè)重要內(nèi)容。利用AOP可以對(duì)業(yè)務(wù)邏輯
16、的各個(gè)部分進(jìn)行隔離,從而使得業(yè)務(wù)邏輯各部分之間的耦合度降低,提高程序的可重用性,同時(shí)提高了開(kāi)發(fā)的效率。AOP切面編程將日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等代碼從業(yè)務(wù)邏輯代碼中劃分出來(lái),通過(guò)對(duì)這些行為的分離,我們希望可以將它們獨(dú)立到非指導(dǎo)業(yè)務(wù)邏輯的方法中,進(jìn)而改變這些行為的時(shí)候不影響業(yè)務(wù)邏輯的代碼。 可以通過(guò)預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)在不修改源代碼的情況下給程序動(dòng)態(tài)統(tǒng)一添加功能的一種技術(shù)。AOP實(shí)際是GOF設(shè)計(jì)模式的延續(xù),設(shè)計(jì)模式孜孜不倦追求的是調(diào)用者和被調(diào)用者之間的解耦,AOP可以說(shuō)也是這種目標(biāo)的一種實(shí)現(xiàn)。AOP切面編程我們編寫(xiě)程序時(shí),首先思考要對(duì)程序中哪些方法進(jìn)行攔截,攔截
17、到這些方法后又要做哪些業(yè)務(wù)處理。這些關(guān)注過(guò)程,我們稱之為:橫切性關(guān)注點(diǎn)。由“橫切性關(guān)注點(diǎn)”引申出以下概念:Aspect(切面):指橫切性關(guān)注點(diǎn)的抽象即為切面,它與類相似,只是兩者的關(guān)注點(diǎn)不一樣,類是對(duì)物體特征的抽象,而切面是橫切性關(guān)注點(diǎn)的抽象。程序里的切面就是AroundAdvise類的實(shí)現(xiàn)部分。joinpoint(連接點(diǎn)):所謂連接點(diǎn)是指那些被攔截到的點(diǎn)。在Spring.NET中,連接點(diǎn)指的是方法,因?yàn)镾pring.NET只支持方法類型的連接點(diǎn),實(shí)際上joinpoint(連接點(diǎn))還可以是字段或類構(gòu)造器。程序里的連接點(diǎn)就是攔截到的方法,如OrderService類的Save方法。AOP切面編程
18、Pointcut(切入點(diǎn)):所謂切入點(diǎn)是指我們要對(duì)那些joinpoint(連接點(diǎn))進(jìn)行攔截的定義。程序里沒(méi)有使用invocation.Method來(lái)判斷攔截哪些方式,而Pointcut(切入點(diǎn))就是對(duì)所有方法進(jìn)行攔截。Advice(通知):所謂通知是指攔截到j(luò)oinpoint(連接點(diǎn))之后所要做的事情就是通知.通知分為前置通知,后置通知,異常通知,環(huán)繞通知。AroundAdvise繼承AopAlliance.Intercept.IMethodInterceptor 接口,程序里使用的是環(huán)繞通知。Target(目標(biāo)對(duì)象):代理的目標(biāo)對(duì)象。程序里的目標(biāo)對(duì)象就是OrderService類,我們通過(guò)P
19、roxyFactory factory = new ProxyFactory(new OrderService() UserName = admin );這句代碼確定了目標(biāo)對(duì)象是OrderService。AOP切面編程AOP代理(AOP proxy):由AOP框架在將通知應(yīng)用于目標(biāo)對(duì)象后創(chuàng)建的對(duì)象。程序里通過(guò)GetProxy()方法創(chuàng)建出的代理對(duì)象。Weave(織入):指將切面(aspect)應(yīng)用到目標(biāo)對(duì)象(target)對(duì)象并導(dǎo)致代理(proxy)對(duì)象創(chuàng)建的過(guò)程稱為織入。正如程序里所應(yīng)用的,OrderService類不具備判斷權(quán)限的功能,我們將判斷權(quán)限的功能SecurityService類的
20、IsPass方法應(yīng)用到目標(biāo)對(duì)象的過(guò)程。Introduction(引入):在不修改類代碼的前提下,Introduction(引入):可以在運(yùn)行期為類動(dòng)態(tài)地添加一些方法或字段。程序里在沒(méi)有修改OrderService類,而是在運(yùn)行期把判斷權(quán)限的功能通過(guò)ProxyFactory的AddAdvice方法動(dòng)態(tài)的增加進(jìn)去。AOP切面編程Spring.NET的四種通知類型:一、攔截環(huán)繞通知(around advice):Spring.NET中最基本的通知類型是攔截環(huán)繞通知(interception around advice),即方法攔截器。攔截環(huán)繞通知繼承IMethodInterceptor接口。注意其中
21、IMethodInvocation.Proceed()方法的調(diào)用。該方法會(huì)依次調(diào)用攔截器鏈上的其它攔截器。大部分?jǐn)r截器都需要調(diào)用這個(gè)方法并返回它的返回值。當(dāng)然,也可以不調(diào)用Proceed方法,而返回一個(gè)其它值或拋出一個(gè)異常,但一般不太會(huì)這么做。二、前置通知(before advise):是在IMethodInterceptor.Proceed()方法調(diào)用前的通知。繼承自IMethodBeforeAdvice接口。AOP切面編程三、異常通知(throws advise):是在IMethodInterceptor.Proceed()方法調(diào)用時(shí)發(fā)生異常的通知。繼承自IthrowsAdvice接口。IthrowsAdvice接口沒(méi)有定義任何方法:它是一個(gè)標(biāo)識(shí)接口(按:之所以用標(biāo)識(shí)接口,原因有二:1、在通知方法中,只有最后一個(gè)參數(shù)是必須的。如果聲明為接口的方法,參數(shù)列表就被固定了。2、如果第一個(gè)原因可以用重載的接口方法解決,那么這個(gè)原因就是使用標(biāo)識(shí)接口的充分原因了:實(shí)現(xiàn)此接口的類必須聲明一或多個(gè)通知方法,接口方法做不到這一點(diǎn)),
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)量負(fù)責(zé)人制度
- 財(cái)務(wù)安全制度
- 落實(shí)管的制度
- 經(jīng)濟(jì)全球化的影響與中國(guó)開(kāi)放之路課件2026屆高考政治二輪復(fù)習(xí)統(tǒng)編版選擇性必修一當(dāng)代國(guó)際政治與經(jīng)濟(jì)
- 2025高二英語(yǔ)期末模擬卷(考試版A4)(譯林版)含答案
- 2026山東事業(yè)單位統(tǒng)考濰坊諸城市招聘40人參考考試題庫(kù)附答案解析
- 2026河北邢臺(tái)高新區(qū)新智產(chǎn)業(yè)發(fā)展集團(tuán)有限公司招聘14人參考考試題庫(kù)附答案解析
- 2026廣東廣州生物醫(yī)藥與健康研究院數(shù)字生物醫(yī)學(xué)研究中心招聘科研助理1人參考考試試題附答案解析
- 2026年淄博沂源縣事業(yè)單位公開(kāi)招聘綜合類崗位工作人員(13人)參考考試題庫(kù)附答案解析
- 2026浙江杭州市中醫(yī)院招聘高層次人才19人·參考考試試題附答案解析
- 黑洞與量子糾纏的熱力學(xué)研究-洞察闡釋
- 帶狀皰疹中醫(yī)病例討論
- 公安交警隊(duì)和車輛管理所標(biāo)識(shí)制作及設(shè)置規(guī)范
- 【高中數(shù)學(xué)競(jìng)賽真題?強(qiáng)基計(jì)劃真題考前適應(yīng)性訓(xùn)練】 專題03三角函數(shù) 真題專項(xiàng)訓(xùn)練(全國(guó)競(jìng)賽+強(qiáng)基計(jì)劃專用)原卷版
- DB33∕T 1152-2018 建筑工程建筑面積計(jì)算和竣工綜合測(cè)量技術(shù)規(guī)程
- 2025年湖南省郴州市中考模擬英語(yǔ)試題(含答案含聽(tīng)力原文無(wú)音頻)
- SL631水利水電工程單元工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)第1部分:土石方工程
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 英語(yǔ)試卷(含標(biāo)準(zhǔn)答案)+聽(tīng)力音頻
- 汽車修理廠輪胎采購(gòu) 投標(biāo)方案(技術(shù)標(biāo) )
- 2023年7月浙江省普通高中學(xué)業(yè)水平考試(學(xué)考)化學(xué)試題
- DB3301-T 0461-2024 電動(dòng)自行車停放充電場(chǎng)所消防安全管理規(guī)
評(píng)論
0/150
提交評(píng)論