版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Flex + LCDS + Java 入門(mén)教程一引很多人在帖子和群中問(wèn)到過(guò)一些關(guān)于建立Flex+LCDS(FDS)工程的問(wèn)題,由于操作上的東西,很難簡(jiǎn)單說(shuō)清楚,于是寫(xiě)了一個(gè)簡(jiǎn)單的教程(本來(lái)很早就答應(yīng)過(guò)的,結(jié)果被newfish逮住做東西,加上公司的事,一直抽不出時(shí)間哈,現(xiàn)在想換換頭腦,偷樂(lè)一下懶哈,各位別跟newfish大大說(shuō)),幫助大家入門(mén),其實(shí)這些東西都是在LCDS的sample中包含了的(當(dāng)然,sample只是包含源碼)。本教程通過(guò)圖文介紹和對(duì)一些關(guān)鍵性的地方進(jìn)行解釋,讓大家了解如何新建Flex的LCDS工程,并利用工具快速整合和部署J2EE項(xiàng)目和LCDS項(xiàng)目,掌握了簡(jiǎn)單的請(qǐng)求Remote
2、Object和配置的方法,初步掌握LCDS的應(yīng)用之一。二介紹1.Flex是什么?2. LCDS是什么?LCDS(LiveCycle Data Service)之前叫做FDS(Flex Data Service),他是基于java(也有ColdFusion版的)后端的數(shù)據(jù)服務(wù)工程,功能包括映射Java對(duì)象到Flex對(duì)象(包括調(diào)用Java類的方法)、RTMP(Real Time Message Protocol)、代理、服務(wù)端生成PDF等等功能,詳細(xì)請(qǐng)參考LCDS里的說(shuō)明。官方有下載,需要注冊(cè)會(huì)員(免費(fèi))。LCDS實(shí)際是付費(fèi)的,但是免費(fèi)也能使用,似乎是少了多CPU的支持。當(dāng)然還有一些其他的數(shù)據(jù)服務(wù)
3、,比如AMFPHP之類的。當(dāng)然,LCDS提供的功能我們都能自己實(shí)現(xiàn),并非Flex脫離了LCDS就不能和后臺(tái)打交道了,除了RemoteObject還有WebSerivce、HTTPService等等。只是說(shuō),LCDS提供了更多的方便和特性。3. Java是什么?三準(zhǔn)備1.下載開(kāi)發(fā)環(huán)境:Eclipse 3.3 + FlexBuilder3 beta2 插件版 +MyEclipse 6.0 +Lcds + Tomcat 5和以上(官方都有下載,或者google里搜一搜哈)MyEclipse:做Java開(kāi)發(fā)都應(yīng)該知道MyEclipse是比較好的J2EE項(xiàng)目的開(kāi)發(fā)及部署工具的,我們主要用它來(lái)部署Flex
4、和Java結(jié)合的項(xiàng)目。6.0是適合Eclipse3.3版的。他自帶了一個(gè)Tomcat服務(wù)器FB3:相比FB2,他在LCDS工程上做了很大的改進(jìn),特別是beta2,項(xiàng)目向?qū)Ц拥囊锥?,而且比FB2更好的是,F(xiàn)lex.war是被打包在你的Flex項(xiàng)目中的,而不需要單獨(dú)的部署了。性能上也高出FB2LCDS:安裝lcds后,起作用的是里面的flex.war文件,實(shí)際上,這就是一個(gè)j2ee的工程。在發(fā)布到web應(yīng)用服務(wù)器后(比如tomcat、j4run等)就會(huì)被解壓成一個(gè)工程。當(dāng)然,在FB3里,這個(gè)發(fā)布的過(guò)程會(huì)更加的簡(jiǎn)單。2.安裝:略四入門(mén)教程1.新建FlexLCDS工程File - new - Fle
5、x Project 注:以下設(shè)置絕大多數(shù)都可以在項(xiàng)目屬性中可以修改。1).向?qū)Ы缑?說(shuō)明:Java source folder就是你自己java業(yè)務(wù)源碼存放的根目錄,在FB3里,LCDS項(xiàng)目旨在將Java J2ee項(xiàng)目和FlexLcds項(xiàng)目混合。當(dāng)然如果你不選擇 combined 兩個(gè)在一起,那么就麻煩些:要么你再單獨(dú)新建一個(gè)Flex項(xiàng)目,而這個(gè)項(xiàng)目只寫(xiě)java代碼。要么再建一個(gè)J2ee工程寫(xiě)java代碼,而這個(gè)項(xiàng)目只寫(xiě)Flex代碼,但最后要把Java編譯后的class文件放到這個(gè)項(xiàng)目下的webrootweb-infclasses目錄中。即不管怎樣,最后發(fā)布時(shí),java編譯后的class文件必
6、須和lcds部署的項(xiàng)目在一起。(聽(tīng)起來(lái)繞昏頭了?那就在一個(gè)工程里吧)2).向?qū)Ы缑?說(shuō)明:Target runtime實(shí)際上沒(méi)什么用(后來(lái)我刪除了配置文件里的對(duì)應(yīng)信息,也沒(méi)問(wèn)題),但是不指定就不能繼續(xù),如果這里顯示的是那么就新建一個(gè)Tomcat的runtime,簡(jiǎn)單的只需要指定tomcat的安裝目錄即可。Content folder實(shí)際上就是最終編譯后的容器目錄,因此,Lcds的flex.war文件將會(huì)發(fā)布到 該目錄 下的web-inf下的flex目錄中。同時(shí)因?yàn)榻坛滩捎玫氖荕yEclipse,他默認(rèn)的就是發(fā)布WebRoot里的內(nèi)容,為了自動(dòng)化,因此這里改為了WebRoot(這也是java開(kāi)發(fā)
7、的習(xí)慣) Flex WAR file 指的是安裝了lcds后的flex.war文件的路徑Compilation options指定了flex文件的編譯方式,選擇推薦的在FlexBuilder里編譯吧,雖然開(kāi)發(fā)時(shí)多耗點(diǎn)時(shí)間,但是在發(fā)布后不會(huì)占用服務(wù)器的編譯處理時(shí)間,對(duì)用戶來(lái)說(shuō)是有好處的。Output folder 指的是Flex編譯后的swf和html等文件存放的路徑,這里改為了WebRootbin3).向?qū)Ы缑?說(shuō)明:Main source folder 是flex的源碼存放根目錄,當(dāng)然和java源碼分開(kāi)了。Output folder URL 是在開(kāi)發(fā)過(guò)程中運(yùn)行和調(diào)試的請(qǐng)求路徑,這個(gè)與發(fā)布無(wú)關(guān)
8、,不會(huì)影響任何你在程序中使用的路徑,但是能使開(kāi)發(fā)方便注意:FlexBuilder3這里存在bug,新建工程時(shí),部分自定義的屬性并沒(méi)有保存下來(lái),而必須在新建后的項(xiàng)目屬性中更改,后面有說(shuō)明到放心這些設(shè)置都可以在以后修改。4).新建完成的項(xiàng)目結(jié)構(gòu)看起來(lái)是這樣的2.用MyEclipse添加Web容器之前說(shuō)到了,MyEclipse是很好用的J2EE的開(kāi)發(fā)插件,其中就包含了部署功能。我們可以拋開(kāi)煩瑣的手動(dòng)部署,交由MyEclipse完成吧,當(dāng)然,首先得讓你的FlexLCDS工程變成為J2EE的Web工程。1).向?qū)Ы缑?注意:不要點(diǎn)快了,把這里的Create web.xml取消,這樣就不會(huì)覆蓋LCDS創(chuàng)建
9、的web.xml文件現(xiàn)在我們的工程的圖標(biāo)變成了J2EE Web 工程了,這意味著,你可以用MyEclipse來(lái)發(fā)布它或者添加更多容器,比如hibernate、spring等3. 部署FlexLCDS工程有了MyEclipse,那么你就不用手動(dòng)的部署你的項(xiàng)目了,可以簡(jiǎn)單的通過(guò)點(diǎn)擊工具欄上的這個(gè)圖標(biāo)1).部署向?qū)?注意:(如果你的列表中沒(méi)有服務(wù)器,那么就自己建一個(gè))2).新建部署Web應(yīng)用服務(wù)器注意:如果是MyEclipse6.0,則會(huì)自帶一個(gè)Tomcat服務(wù)器。如果不是6.0,那么點(diǎn)Edit server connectors自己添加一個(gè)tomcat。點(diǎn)finish后則會(huì)開(kāi)始部署。成功后會(huì)在De
10、ployment status里提示success,并且看到列表中你的項(xiàng)目已經(jīng)成功部署4. 修改一下項(xiàng)目的訪問(wèn)路徑打開(kāi)項(xiàng)目的屬性,在這里,我們可以重新修改項(xiàng)目編譯和發(fā)布的配置,包括先前向?qū)Ю锏脑O(shè)置修改output folder url為什么要這么做?這樣每次發(fā)布都會(huì)自動(dòng)將編譯的最終swf文件直接發(fā)布至WebRootbin目錄下,而下面的output folder url則會(huì)在我們啟動(dòng)和調(diào)試項(xiàng)目時(shí),直接請(qǐng)求這個(gè)路徑(這跟發(fā)布無(wú)關(guān),只是我們?cè)陂_(kāi)發(fā)過(guò)程中會(huì)方便些)5. 修改Flex Server的項(xiàng)目容器屬性(非常重要,多數(shù)連接路徑錯(cuò)誤就是這里配置錯(cuò)誤)改成如下配置說(shuō)明:Root url 當(dāng)然就是你
11、的web服務(wù)器的根路徑了,Tomcat默認(rèn)是8080端口,如果改了就自己修改Context root 就是LCDS工程的名稱(注意:如果你分開(kāi)為兩個(gè)工程,則這里指的是你J2ee項(xiàng)目的名稱,而不是你Flex項(xiàng)目的名稱,因?yàn)槟阍谡?qǐng)求Java的數(shù)據(jù)服務(wù)),在Flex請(qǐng)求LCDS時(shí),會(huì)采用這個(gè)作為參數(shù):server.port/context.root/messagebroker/amf如果Context root錯(cuò)了,那么永遠(yuǎn)不可能正確的請(qǐng)求LCDS的服務(wù)了。確定后,我們來(lái)運(yùn)行測(cè)試一下這個(gè)FlexLCDS項(xiàng)目是否能正常訪問(wèn)6. 啟動(dòng)服務(wù)器稍等片刻,等到服務(wù)器完全啟動(dòng)后
12、繼續(xù)下面的操作7. 運(yùn)行訪問(wèn)注:如果之前的Output folder url配置正確,那么會(huì)自動(dòng)的彈出訪問(wèn)頁(yè)面,DEBUG時(shí)也是一樣。OK,一切順利,至此,你已經(jīng)做到了第一步,即,將Flex項(xiàng)目、LCDS服務(wù)成功的整合至J2EE web 項(xiàng)目,這樣的好處就是今后發(fā)布省的麻煩了。五簡(jiǎn)單的RemoteObject1.什么是RemoteObject?顧名思義,即遠(yuǎn)程對(duì)象。這里指的就是在Flex中獲取Java里的對(duì)象。有什么用呢?這樣Flex可以更加簡(jiǎn)單的獲取服務(wù)端的數(shù)據(jù),比如你在Java中有個(gè)方法進(jìn)行了數(shù)據(jù)查詢,取出的結(jié)果是Array類型,那么你可以很容易通過(guò)Flex里的RemoteObject訪問(wèn)
13、到該類,并調(diào)用該方法,最后返回的數(shù)據(jù)是Flex也兼容的Array對(duì)象。2. 新建Java類File - new -other(如果你沒(méi)在列表中看到j(luò)ava class的話)1).新建向?qū)?2).向?qū)?注意:別忘記了你設(shè)定的java源碼根目錄路徑,如果對(duì)java不熟悉的話,這里我就不解釋了,照著做吧。3).編寫(xiě)如下代碼package com.test;public class FirstJavaClass public String sayHello(String str)return 你說(shuō)的是:+str;3. 配置Flex LCDS的Remoting-config.xml1).他是remote
14、object和相關(guān)遠(yuǎn)程訪問(wèn)的配置文件,路徑位于注意:現(xiàn)在LCDS是你的項(xiàng)目的一部分了,因此不用來(lái)回的在服務(wù)器中修改配置然后再發(fā)布了。2).改寫(xiě)其代碼如下 com.test.FirstJavaClass application 說(shuō)明:一個(gè)destination 指定的就是一個(gè)RO對(duì)象,他的id就是在Flex中RO請(qǐng)求的destination,source 指的是這個(gè)Java類的路徑注意:在修改了配置文件后可能需要重啟web服務(wù)器(Tomcat)4. 編寫(xiě)mxml來(lái)請(qǐng)求RO1).打開(kāi)MyFirstLCDS.mxml編寫(xiě)代碼如下2)OK,保存好后,用之前的方法來(lái)運(yùn)行一下看看?RemoteObject
15、的簡(jiǎn)單教程完Flex +BDS + Java 入門(mén)教程 差別唯一就在選擇flex.war的時(shí)候選擇bds對(duì)應(yīng)的warBDS+Spring/devnet/livecycle/articles/blazeds_spring.htmlGetting startedWhether you are a Flex developer with limited knowledge of Spring, or a Spring developer with limited knowledge of Flex, you can benefit from the powerf
16、ul integration of these products. This section describes how BlazeDS enables a tight integration between Flex and Spring, and provides background information on the technologies at play.What is Spring?Spring is one of the most popular Java frameworks. The foundation of the Spring framework is a ligh
17、tweight component container that implements the Inversion of Control (IoC) pattern. Using an IoC container, components dont instantiate or even look up their dependencies (the objects they work with). The container is responsible for injecting those dependencies when it creates the components (hence
18、 the term Dependency Injection also used to describe this pattern). The result is looser coupling between components. The Spring IoC container has proven to be a solid foundation for building robust enterprise applications. The components managed by the Spring IoC container are called Spring beans.T
19、he Spring framework includes several other modules in addition to its core IoC container. These modules are not covered in this document even though we will be using the Spring JDBC abstraction framework in the second sample application below. More information on the Spring framework can be found at
20、 .What is Flex?Flex is an environment for building Rich Internet Applications. The Flex programming model is made of: ActionScript, an ECMAScript compliant, object-oriented programming model. With some syntactical differences, ActionScript looks and feels similar to Java
21、, and supports the same object-oriented constructs: packages, classes, inheritance, interfaces, strong (but also dynamic) typing etc. MXML: an XML-based language that provides an abstraction on top of ActionScript, and allows parts of an application (typically the View) to be built declaratively. An
22、 extensive set of class libraries. The documentation is available here in a Javadoc-like format. The Flex source code (.mxml and .as files) is compiled into Flash bytecode (.swf) that is executed at the client-side by the Flash virtual machine using a Just-In-Time compiler.The Flex SDK is an open so
23、urce project. It includes the Flex component library, the compiler, the debugger, and the documentation. A complete discussion of Flex is beyond the scope of this document. You can find more information and download the Flex SDK at . What is BlazeDS?BlazeDS is a set of data
24、 services that give your Flex applications additional options for data connectivity. Without BlazeDS (or, without deploying any Flex-specific component at the server-side), Flex applications can access back-end data using either the HTTPService or the WebService: You use the HTTPService component to
25、 send HTTP requests to a server, and consume the response. Although the HTTPService is often used to consume XML, it can be used to consume other types of responses. The Flex HTTPService is similar to the XMLHttpRequest component available in Ajax. You use the WebService component to invoke SOAP-bas
26、ed web services. BlazeDS adds the following services: The Remoting Service allows your Flex application to directly invoke methods of Java objects deployed in your application server. The Message Service provides a publish/subscribe infrastructure that enables your Flex application to publish messag
27、es and subscribe to a messaging destination, enabling the development of real-time data push and collaborative applications. The Proxy Service allows your Flex application to make cross-domain service requests in a secure and controlled manner. In other words, it allows your Flex application to acce
28、ss a service available on a different domain than the domain from where the application was downloaded (without having to deploy a crossdomain.xml policy file on the target domain). BlazeDS is deployed as a set of JAR files as part of your web application. Like the Flex SDK, BlazeDS is an open-sourc
29、e project. More information is available at .In this document, we focus on the Remoting service. The Remoting Service provides a tight and natural integration with Spring. There is no need to transform data, or to expose services in a certain way: the Flex application can d
30、irectly access the beans registered in the Spring IoC container.How does Flex use BlazeDS to access Spring beans? So, if Flex clients can remotely access Java objects, and if Spring beans are Java objects, arent we all set and ready to start accessing Spring beans from Flex clients? Almost There is
31、one simple element to configure. The whole idea behind Spring IoC is to let the container instantiate components (and inject their dependencies). By default, however, components accessed remotely by a Flex client are instantiated by BlazeDS on the server. The key to the Flex/Spring integration, ther
32、efore, is to configure BlazeDS to let the Spring container take care of instantiating Spring beans. BlazeDS supports the concept of a factory to enable this type of custom component instantiation. The role of a factory is simply to provide ready-to-use instances of components to BlazeDS (instead of
33、letting BlazeDS instantiate these components). The supporting files available with this article include a factory class (SpringFactory) that provides BlazeDS with fully initialized (dependency-injected) instances of Spring beans. Note: The SpringFactory was developed by Jeff Vroom (Flex Data Service
34、s architect) and is also available on Adobe Exchange.The remainder of this article describes how to configure your web application to use BlazeDS and Spring, how to configure the Spring Factory, and how to put the pieces together and start invoking Spring beans from Flex applications. Setting up you
35、r environmentConfiguring your web application is simple and merely requires installing and registering the necessary components.Step 1: Install the BlazeDS turnkey serverThe BlazeDS turnkey server is a ready-to-use version of Apache Tomcat in which the Blaze data services have already been deployed
36、along with sample applications. The goal of the turnkey server is to give developers an easy way to run samples and tutorials out of the box.To install the BlazeDS turnkey server:1. Make sure that you have the JDK 1.5 or higher installed, and that you have a JAVA_HOME environment variable pointing t
37、o your Java Development Kit installation. 2. Download blazeds-turnkey-.zip. 3. Unzip blazeds-turnkey-.zip in /blazeds. Note.You can unzip blazeds-turnkey-.zip anywhere else. Just make sure you adjust the path in the instructions provided in this document accordingly.4. Start the samples database. a.
38、 Open a command prompt. b. Navigate to /blazeds/sampledb. c. Execute startdb.bat (Windows) or startdb.sh (Unix-based systems) 5. Start Tomcat. a. Open a command prompt. b. Navigate to /blazeds/tomcat/bin. c. Execute the following command: catalina run d. Access http:/localhost:8400/samples to make s
39、ure the installation is successful: you should see the BlazeDS samples home page. As an alternative to using the turnkey server, you could use one of the following options:1. Download blazeds-.war and deploy it in your own application server. Blazeds-.war is a blank web application configured to use
40、 the BlazeDS data services. Note: samples-.war includes everything included in blazeds.war, plus a series of samples. 2. Download blazeds-.war and merge its content in your own web application. The instructions in this document assume that you use the BlazeDS turnkey server. If you are using one of
41、the alternative options, you will have to adjust the instructions accordingly. Step 2: Install the Flex SDKYou need the Flex compiler to compile the client-side (Flex-side) of the sample applications discussed in this document. The Flex compiler is part of the Flex SDK. As a convenience, the Flex SD
42、K is available as part of the BlazeDS installation in blazeds/resources/flex_sdk/flex_sdk_3.zip. Note: The Flex SDK can also be downloaded at . It is also available as part of Flex Builder.To install the Flex SDK:You can skip this step if Flex Builder 3 is installed on your
43、 system.Unzip /blazeds/resources/flex_sdk/flex_sdk_3.zip in /flex_sdk_3. Note: You can unzip flex_sdk_3.zip anywhere else. Just make sure you adjust the path in the instructions provided in this document accordingly.Step 3: Install SpringNote: A complete discussion of the Spring installation process
44、 is beyond the scope of this article. Refer to for more information. The steps below describe a basic configuration that is sufficient for the purpose of this article.1. Download the Spring framework at /download (the version without depende
45、ncies is sufficient to complete the examples in this article).Note: The examples below have been developed and tested using Spring 2.x. However the integration approach described in this document (and the SpringFactory class) should work fine using Spring 1.2.8 (some of the examples might not work b
46、ecause they use Spring 2.x features).2. Unzip the downloaded file. 3. Locate spring.jar in the dist directory and copy the file to /blazeds/tomcat/webapps/blazeds/WEB-INF/lib 4. Open /blazeds/tomcat/webapps/blazeds/WEB-INF/web.xml and add the context-param and listener definitions as follows: contex
47、tConfigLocation/WEB-INF/applicationContext.xmlorg.springframework.web.context.ContextLoaderListener Step 4: Install the supporting files1. Download flex-spring.zip here 2. Unzip flex-spring.zip in /flex-spring Flex-spring.zip includes the Spring factory as well as the supporting files for the exampl
48、es below.Step 5: Register the Spring factory1. Copy SpringFactory.class and SpringFactory$SpringFactoryInstance.class from /flex-spring/factory/bin/flex/samples/factories to /blazeds/tomcat/webapps/blazeds/WEB-INF/classes/flex/samples/factories. 2. Register the Spring factory in /blazeds/tomcat/weba
49、pps/blazeds/WEB-INF/flex/services-config.xml: Example 1: Mortgage calculatorThis first application is intentionally simplistic to provide an uncluttered example of wiring Spring beans together and invoking them from a Flex application. Step 1: Examine the application source code1. Examine the Flex s
50、ource code:Open MortgageCalc.mxml located in /flex-spring/samples/mortgage/flex in a code editor to familiarize yourself with the application. The application enables the user to enter a mortgage amount. When the user clicks the Calculate button, the application obtains the value of the monthly paym
51、ent for that mortgage by invoking the calculate() method of the remote object identified by a logical name: mortgageService. mortgageService is mapped to a fully qualified Java class name in the remoting-config.xml file (see Step 3 below). 2. Examine the Java source code:Open RateFinder.java, SimpleRateFinder.java and Mortgage.java located in /flex-spring/samples/mortgage/java in a code editor. Notice that Mortgage has a dependency to a RateFinder object. Mortgage doesnt instantiate a RateFinder object itself, doesnt lookup up for a RateFinder object, and doesnt even know the exact type of th
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中介與賣(mài)房合同范例
- 清運(yùn)公司合同范例
- 個(gè)人轉(zhuǎn)讓定金合同范例
- 噴霧管道質(zhì)保合同范例
- 掛靠解除合同范例
- 新校舍裝修合同范例
- 小學(xué)花藝師聘用合同范例
- 無(wú)償贈(zèng)予合同范例
- 混凝土供需合同范例
- 糕供貨合同范例
- 高速鐵路概論 課件 第3章 高速鐵路車站
- 10kv電力施工方案
- 某港口碼頭工程施工組織設(shè)計(jì)
- 2024年部編版語(yǔ)文五年級(jí)上冊(cè)全冊(cè)單元檢測(cè)題及答案(共8套)
- 2024基層醫(yī)療機(jī)構(gòu)院感防控管理能力提升培訓(xùn)考核試題及答案
- 普通外科國(guó)家臨床重點(diǎn)??平ㄔO(shè)項(xiàng)目申報(bào)書(shū)
- 2020海灣JTW-LD-GST85B纜式線型感溫火災(zāi)探測(cè)器
- 微測(cè)網(wǎng)題庫(kù)完整版行測(cè)
- 2024中華人民共和國(guó)農(nóng)村集體經(jīng)濟(jì)組織法詳細(xì)解讀課件
- 110kV變電站專項(xiàng)電氣試驗(yàn)及調(diào)試方案
- 2024應(yīng)急管理部國(guó)家自然災(zāi)害防治研究院公開(kāi)招聘34人(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
評(píng)論
0/150
提交評(píng)論