秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

某軟件項(xiàng)目開(kāi)發(fā)手冊(cè).doc

上傳人:good****022 文檔編號(hào):116651497 上傳時(shí)間:2022-07-06 格式:DOC 頁(yè)數(shù):52 大小:608.18KB
收藏 版權(quán)申訴 舉報(bào) 下載
某軟件項(xiàng)目開(kāi)發(fā)手冊(cè).doc_第1頁(yè)
第1頁(yè) / 共52頁(yè)
某軟件項(xiàng)目開(kāi)發(fā)手冊(cè).doc_第2頁(yè)
第2頁(yè) / 共52頁(yè)
某軟件項(xiàng)目開(kāi)發(fā)手冊(cè).doc_第3頁(yè)
第3頁(yè) / 共52頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《某軟件項(xiàng)目開(kāi)發(fā)手冊(cè).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《某軟件項(xiàng)目開(kāi)發(fā)手冊(cè).doc(52頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、文件編號(hào):P01-01 分 冊(cè) 號(hào):1/1 頁(yè) 碼:52 密 級(jí):C InforGuard 項(xiàng)項(xiàng)目目 開(kāi)開(kāi)發(fā)發(fā)手手冊(cè)冊(cè) 中創(chuàng)軟件商用中間件股份有限公司 2010 年 05 月 變變更更記錄記錄 變更版本日期圖表、表格、段落號(hào) A/M/D 原因與修改情況描述修訂人審核人 1.02010-1-1ALLA創(chuàng)建文檔李銘 注:A 增加 M 修改 D 刪節(jié) 目錄 核高基 6-1 項(xiàng)目 使用手冊(cè) I 目目錄錄 第第 1 章章 概述概述.1 1.1. 開(kāi)發(fā)場(chǎng)景.1 1.2. 基本概念.1 第第 2 章章 搭建開(kāi)發(fā)環(huán)境搭建開(kāi)發(fā)環(huán)境.2 2.1. 準(zhǔn)備開(kāi)發(fā)工具.2 2.2. 工具安裝及環(huán)境配置.2 2.2.1.

2、安裝jdk及配置java環(huán)境2 2.2.2. 安裝maven及配置倉(cāng)庫(kù).3 2.2.3. Eclipse中安裝m2eclipse插件4 2.2.4. Eclipse中安裝RAP開(kāi)發(fā)環(huán)境4 2.2.5. Eclipse中安裝國(guó)際化編輯插件5 2.2.6. Eclipse中導(dǎo)入編碼樣式5 2.2.7. 設(shè)置Eclipse的默認(rèn)編碼5 第第 3 章章 開(kāi)發(fā)案例開(kāi)發(fā)案例.7 3.1. 開(kāi)發(fā)前準(zhǔn)備.7 3.2. 組織結(jié)構(gòu).7 3.2.1. 目錄結(jié)構(gòu).7 3.2.2. 源碼組織.8 3.3. 開(kāi)發(fā)流程.8 3.3.1. 建立Eclipse插件工程8 3.3.2. 添加依賴.9 3.3.3. 添加導(dǎo)出包.1

3、0 3.3.4. 開(kāi)發(fā)聲明式服務(wù)(DService)11 第第 4 章章 常見(jiàn)問(wèn)題解答常見(jiàn)問(wèn)題解答.23 第第 5 章章 參考參考.24 附錄一附錄一 SETTING.XML.25 附錄二附錄二 常用動(dòng)名詞常用動(dòng)名詞.33 附錄三附錄三 本地化資源文件的創(chuàng)建方法本地化資源文件的創(chuàng)建方法.34 附錄四附錄四 MANIFEST.MF 35 附錄五附錄五 POM.XML.36 附件六附件六 OSGI 命令說(shuō)明命令說(shuō)明.39 目錄 核高基 6-1 項(xiàng)目 使用手冊(cè) II 附件七附件七 METADATA.XML.41 概述 核高基 6-1 項(xiàng)目 使用手冊(cè) 1 章 1 章 概概述述 該文檔是為 InforG

4、uard UTMP 開(kāi)發(fā)人員開(kāi)發(fā)新功能所編寫(xiě)的規(guī)范性文檔。 1.1. 開(kāi)開(kāi)發(fā)發(fā)場(chǎng)場(chǎng)景景 當(dāng) UTMP 添加新的功能時(shí),開(kāi)發(fā)人員可以根據(jù)該文檔更快更有效的進(jìn)行開(kāi)發(fā)。 1.2. 基基本本概概念念 OSGi:OSGi(JSR 291)也叫 Java 語(yǔ)言的動(dòng)態(tài)模塊系統(tǒng),它為模塊化應(yīng)用的開(kāi)發(fā)定義了一個(gè) 基礎(chǔ)架構(gòu)。OSGi 容器已有多家開(kāi)源實(shí)現(xiàn),比如 Knoflerfish、Equinox 和 Apache 的 Felix。 更多信息可以訪問(wèn): http:/www.osgi.org/Main/HomePage、http:/ Equinox:Equinox 是 Eclipse 中的項(xiàng)目之一,Equinox

5、 是作為 OSGI R4 RI 而知名的,同時(shí) 由于 Equinox 有 Eclipse IDE 這么個(gè)成功案例,反應(yīng)出了 Equinox 作為 OSGI 框架的優(yōu)勢(shì)。 更多信息可以訪問(wèn):http:/www.eclipse.org/equinox/、http:/www.riawork.org/。 Bundle:OSGi 服務(wù)框架定義的模塊化單元,稱之為一個(gè) Bundle。一個(gè) Bundle 由 java 的類 和其他資源組成,可以為終端用戶提供功能。Bundle 的描述信息存放在一個(gè) manifest 文件 中,這個(gè)文件包含在 JAR 文件中的 META-INF 目錄下,命名為 MANIFES

6、T.MF。通過(guò) Bundle 的符號(hào)名稱和版本號(hào)可以在框架中惟一的確定一個(gè) Bundle。 Eclipse RAP: Eclipse RAP 項(xiàng)目的目的是讓開(kāi)發(fā)人員能夠利用 Eclipse 開(kāi)發(fā)模型來(lái)構(gòu)建 Rich,Ajax-enabled Web 應(yīng)用程序。主要運(yùn)用著名的 Eclipse 平臺(tái)擴(kuò)展點(diǎn)插件機(jī)制和一個(gè)包 含 SWT/JFace API 的 widget 工具包。RAP 項(xiàng)目旨在使開(kāi)發(fā)人員能夠使用 Eclipse 開(kāi)發(fā)模 型構(gòu)建富 Internet 應(yīng)用程序。RAP 允許開(kāi)發(fā)人員使用豐富的 Java 庫(kù)和 Eclipse API 構(gòu) 建基于瀏覽器的 Ajax 應(yīng)用程序。它通過(guò)提供

7、SWT、JFace 和 Eclipse Workbench 的基于 Web 的實(shí)現(xiàn)來(lái)提供此項(xiàng)功能。 更多 RAP 信息可訪問(wèn):http:/www.eclipse.org/rap/。 搭建開(kāi)發(fā)環(huán)境 核高基 6-1 項(xiàng)目 使用手冊(cè) 2 章 2 章 搭搭建建開(kāi)開(kāi)發(fā)發(fā)環(huán)環(huán)境境 2.1. 準(zhǔn)準(zhǔn)備備開(kāi)開(kāi)發(fā)發(fā)工工具具 JDK 1.5 或以上版本,下載地址: ftp:/192.168.51.11/Tools/Program/JDK/jdk-1_5_0_16-windows-i586-p.exe/ Maven 2.0.9 或以上版本,下載地址: ftp:/192.168.51.11/Tools/Program/

8、maven/apache-maven-2.2.1-bin.zip Eclipse 3.5 或以上版本,下載地址: ftp:/192.168.51.11/Tools/Program/%B1%E0%BC%AD%C6%F7/Eclipse/eclipse-java-galileo- SR2-win32.zip 注:192.168.51.11 的用戶名/密碼:user/123 2.2. 工工具具安安裝裝及及環(huán)環(huán)境境配配置置 2.2.1. 安裝安裝 jdk 及配置及配置 java 環(huán)環(huán)境境 1.安裝 Windows 操作系統(tǒng)上的 JDK 安裝程序是一個(gè) exe 可執(zhí)行程序,直接安裝即可,在安裝過(guò)程中 可

9、以選擇安裝路徑以及安裝的組件等,如果沒(méi)有特殊要求,選擇默認(rèn)設(shè)置即可。程序默認(rèn)的安裝路 徑在 C:Program FilesJava 目錄下。 2.環(huán)境變量設(shè)置: 配置步驟為: 1)右擊“我的電腦”,點(diǎn)擊“屬性”:選擇“高級(jí)”選項(xiàng)卡,點(diǎn)擊“環(huán)境變量”。 2)在“系統(tǒng)變量”中,設(shè)置 3 項(xiàng)屬性,JAVA_HOME,PATH,CLASSPATH(不分大小寫(xiě)) JAVA_HOME 指明 JDK 安裝路徑,假設(shè) JDK 的版本為 1.6.0_16,安裝路徑為默認(rèn)路 徑, 則該值應(yīng)設(shè)為 C:Program FilesJavajdk1.6.0_16,此路徑下包括 lib,bin,jre 等 文件夾(此變量最

10、好設(shè)置,因?yàn)橐院筮\(yùn)行一體化管理平臺(tái),eclipse 等都需要此變量) ; PATH 使得系統(tǒng)可以在任何路徑下識(shí)別 java 命令,設(shè)為:%JAVA_HOME%bin; CLASSPATH 為 java 加載類(class or lib)路徑,只有類在 classpath 中,java 命令才能 識(shí)別,設(shè)為:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar (要加.表示當(dāng) 前路徑),%JAVA_HOME%就是引用前面指定的 JAVA_HOME。 3.驗(yàn)證安裝成功: 1)打開(kāi)“開(kāi)始”“運(yùn)行” cmd java version 屏幕輸出 java 版本信息

11、說(shuō)明安裝成功,否則說(shuō)明配置錯(cuò)誤,需要重新進(jìn)行配置。 搭建開(kāi)發(fā)環(huán)境 核高基 6-1 項(xiàng)目 使用手冊(cè) 3 2.2.2. 安裝安裝 maven 及配置及配置倉(cāng)庫(kù)倉(cāng)庫(kù) 1.安裝 1)下載并解壓至想要安裝的目錄 2)設(shè)置 Maven 系統(tǒng)環(huán)境變量,例如:MAVEN_HOME=E:apache-maven 3)添加%MAVEN_HOME%bin 至系統(tǒng)環(huán)境變量 PATH 中。 4)確認(rèn) Maven 的安裝: cmd mvn version 屏幕輸出 maven 版本說(shuō)明安裝成功。 2.配置本地 Repository 本地 Repository 的默認(rèn)值是$user.home/.m2/repository/

12、??梢栽?user configuration(即在 $MAVEN_HOME/conf/setting.xml)中改變本地 Repository 的位置。例如本地倉(cāng)庫(kù)的位置在硬盤(pán) 的位置為:E:Repository。在 setting.xml 可以進(jìn)行如下配置: E:Repository 注意:本地 Repository 必須是絕對(duì)路徑。 3.配置代理 可以在 user configuration(即在$MAVEN_HOME/conf/setting.xml)中配置代理,配置如下: cvicseproxy true http 192.168.2.20 80 localhost releases

13、 admin loong2009 snapshots admin loong2009 搭建開(kāi)發(fā)環(huán)境 核高基 6-1 項(xiàng)目 使用手冊(cè) 4 Trustie Repository1 central Human Readable Name for this Mirror. http:/58.20.54.58/content/groups/treleases Trustie Snapshots Repository1 public-snapshots Human Readable Name for this Mirror. http:/58.20.54.58/content/groups/tsnapsh

14、ots 注:setting.xml 配置文件見(jiàn)附件一 2.2.3. Eclipse 中安裝中安裝 m2eclipse 插件插件 在 eclipse 中選擇Help Install New Software .,在彈出的 Install 對(duì)話框的 Work with 文本框中 添加 m2eclipse 插件的安裝地址 http:/m2eclipse.sonatype.org/sites/m2e,選擇“Maven Integration for Eclipse (Required)”進(jìn)行安裝。 安裝完成之后需要在 eclipse 中自行指定在本機(jī)中 maven 的 Repository 位置。打開(kāi)

15、 window/proferences 菜單,點(diǎn)擊 maven 配置項(xiàng)的 Installations,去掉默認(rèn)的 launch maven,添加機(jī)器 上的 maven 并選擇使用,點(diǎn)擊 maven 配置項(xiàng)的 user settings,選擇$MAVEN_HOME /conf/setting.xml 文件,完成配置。 2.2.4. Eclipse 中安裝中安裝 RAP 開(kāi)開(kāi)發(fā)環(huán)發(fā)環(huán)境境 打開(kāi) Eclipse,選擇Help Install New Software . 菜單。 在彈出的 Install 對(duì)話框的 Work with 文本框中輸入 RAP 的安裝地址,如 1.3 版本為: http:

16、/download.eclipse.org/rt/rap/1.3/tooling。 選擇列表中出現(xiàn)的 Rich Ajax Platform 并點(diǎn)擊下一步。 在詳細(xì)頁(yè)面點(diǎn)擊下一步。 在許可證頁(yè)面選擇同意并點(diǎn)擊完成按鈕。 安裝完成后確認(rèn)重啟 Eclipse。 Eclipse 重啟后會(huì)出現(xiàn)歡迎頁(yè)面,選擇 Rich Ajax Platform(RAP) 選擇 Install Target Platform 選擇確定按鈕。 搭建開(kāi)發(fā)環(huán)境 核高基 6-1 項(xiàng)目 使用手冊(cè) 5 2.2.5. Eclipse 中安裝國(guó)中安裝國(guó)際際化化編輯編輯插件插件 打開(kāi) Eclipse,選擇Help Install New

17、Software . 菜單。 在彈出的 Install 對(duì)話框的 Work with 文本框中輸入 Jinto 的安裝地址: http:/www.guh- software.de/eclipse/。 選擇列表中出現(xiàn)的 OpenSource Tools 并點(diǎn)擊下一步。 在詳細(xì)頁(yè)面點(diǎn)擊下一步。 在許可證頁(yè)面選擇同意并點(diǎn)擊完成按鈕。 安裝完成后確認(rèn)重啟 Eclipse。 2.2.6. Eclipse 中中導(dǎo)導(dǎo)入入編碼樣編碼樣式式 打開(kāi) Eclipse,選擇Window PreferencesJavaCode StyleCode Templates 菜單。 點(diǎn)擊界面右面的 Import 按鈕,選擇 I

18、DCcodetemplates.xm 文件,點(diǎn)擊 Apply 按鈕。 當(dāng)新建 Java 接口/類時(shí),需要選擇 Generate comments,如下圖: 2.2.7. 設(shè)設(shè)置置 Eclipse 的默的默認(rèn)編碼認(rèn)編碼 打開(kāi) Eclipse,選擇Window PreferencesGeneralWorkspace菜單。 在 Text file encoding 中選擇 Other,并且把編碼改成 UTF-8。 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 6 章 3 章 開(kāi)開(kāi)發(fā)發(fā)案案例例 3.1. 開(kāi)開(kāi)發(fā)發(fā)前前準(zhǔn)準(zhǔn)備備 參照第 2 章搭建好開(kāi)發(fā)環(huán)境。 3.2. 組組織織結(jié)結(jié)構(gòu)構(gòu) 3.2.1. 目目錄

19、結(jié)錄結(jié)構(gòu)構(gòu) 目錄目錄說(shuō)明說(shuō)明 Cloud-UI界面原型的 WEB 工程 Cloud-FlexFlex 開(kāi)發(fā)工程 Cloud -web 存放展示層構(gòu)件工程 user-management 存放用戶管理工程 3.2.2. 源源碼組織碼組織 本項(xiàng)目主要的包結(jié)構(gòu)如下:com.cvicse.inforguard.utmp.模塊名.構(gòu)件名.分組名 3.3. 開(kāi)開(kāi)發(fā)發(fā)流流程程 3.3.1. 建立建立 Eclipse 插件工程插件工程 啟動(dòng) Eclispe, 從 Eclispe 的 File 菜單創(chuàng)建一個(gè) Eclipse 插件工程,F(xiàn)ile New Project Plug-in Development Pl

20、ug-in Project,輸入工程名 cloud-userman-impl,選擇合適的工程目錄,點(diǎn) 擊 next,進(jìn)入 Plug-in Project 向?qū)?,配置完成后點(diǎn)擊 Finish,完成建立工作。 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 7 參考上圖設(shè)置,點(diǎn)擊 Finish 按鈕完成工程創(chuàng)建。 注意:(1)由于我們開(kāi)發(fā)的是第一個(gè)版本,所以 Version 先寫(xiě)成 0.0.1。(2)需要把”Generate an activator, a Java class that controls the plug-ins life cycle”取消勾選狀態(tài)。(3)如果開(kāi)發(fā)的是 Web 插件,需

21、要把”This plug-in will make contributions to the UI”勾選上。 3.3.2. 添加依添加依賴賴 用 Plug-in Manifest Edit 打開(kāi) MANIFEST.MF 文件,切換到 Dependecies 視圖,如下圖。 在 Required Plug-ins 中加入依賴的插件。 在 Imported Packages 中加入依賴的包。 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 8 3.3.3. 添加添加導(dǎo)導(dǎo)出包出包 用 Plug-in Manifest Edit 打開(kāi) MANIFEST.MF 文件,切換到 Runtime 視圖,如下圖: 在

22、 Exported Packages 中添加要導(dǎo)出的包。 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 9 3.3.4. 開(kāi)開(kāi)發(fā)發(fā)聲明式服聲明式服務(wù)務(wù)(DService) 在這里我們將開(kāi)發(fā)一個(gè)簡(jiǎn)單的例子,這個(gè)例子包括以下部分: 發(fā)布一個(gè) OSGi 服務(wù)。 引用一個(gè) OSGi 服務(wù)。 使用構(gòu)件實(shí)例生命周期控制方法來(lái)激活和去活構(gòu)件實(shí)例。 為了舉例說(shuō)明 DService 功能,我們將開(kāi)發(fā)一個(gè)簡(jiǎn)單的程序來(lái)展現(xiàn)它。這個(gè)例子包括 3 個(gè) Bundle, 其一是服務(wù)接口(Hello Service),對(duì)應(yīng) POJO project 其二是服務(wù)實(shí)現(xiàn),作為一個(gè)單獨(dú)的構(gòu)件位于單獨(dú)的 Bundle 中,并且該構(gòu)件提供

23、OSGi 服務(wù) (POJO-Impl),對(duì)應(yīng) POJO-Impl project 其三是服務(wù)使用方,也是作為一個(gè)單獨(dú)的構(gòu)件位于單獨(dú)的 Bundle 中,并且該構(gòu)件需要使用 Hello Service 接口的 OSGi 服務(wù),對(duì)應(yīng) POJO Client project。 首先,創(chuàng)建一個(gè) hello-api 的服務(wù)接口工程(創(chuàng)建過(guò)程見(jiàn) 3.3.1. ),添加一個(gè)接口類: com.cvicse.inforguard.utmp.example.hello.IHello,代碼如下: /* * * InforGuard Copyright 2010 CVICSE, Co.ltd . * All righ

24、ts reserved. * * Package: com.cvicse.inforguard.utmp.example.hello 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 10 * FileName: IHello.java * */ package com.cvicse.inforguard.utmp.example.hello; /* * * 描述: * * 服務(wù)接口 * * 創(chuàng)建日期 2010-6-1 * * author li_ming * version 1.0 * */ public interface IHello /* * 打招呼 * param name 姓名 * ret

25、urn 打招呼語(yǔ)句 */ public String sayHello(String name); 使 hello-api 工程支持 Maven,操作如下圖: 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 11 點(diǎn)擊“Enable Dependency Managerment”,彈出配置界面,填寫(xiě)如下: 填寫(xiě)完后,點(diǎn)擊“Finish”,這時(shí)候 pom.xml 文件會(huì)報(bào)錯(cuò),你需要把下面的代碼加入 pom.xml 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 12 的標(biāo)簽后面: org.codehaus.mojo build-helper-maven-plugin 1.1 add-source gener

26、ate-sources add-source src org.apache.felix maven-bundle-plugin 2.0.0 true $pom.artifactId com.cvicse.inforguard.utmp.example.hello 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 13 pom.xml 中各標(biāo)簽的詳細(xì)說(shuō)明見(jiàn)附錄五。 雙擊 MANIFEST.MF,在 Runtime 中把 com.cvicse.inforguard.utmp.example.hello 包暴露出來(lái), 詳見(jiàn) 3.3.3. 。 接下來(lái)只需要在 eclipse 中右擊工程或者 pom 文件,選擇

27、 run as maven install 即完成工程的構(gòu)建 工作。當(dāng) maven 報(bào)告INFO BUILD SUCCESSFUL 則 Hello Service 服務(wù)構(gòu)件的 jar 包已經(jīng)安裝到 maven 的本地庫(kù)中,同時(shí)生成一個(gè)副本位于工程根目錄的 target 下。 第二步創(chuàng)建 Hello 接口的實(shí)現(xiàn)工程:hello-impl,雙擊 MANIFEST.MF,在 Dependencies 中添加 hello-api 插件的依賴,詳見(jiàn) 3.3.2. 。 添加一個(gè) IHello 接口的實(shí)現(xiàn)類:com.cvicse.inforguard.utmp.example.hello.impl. Hel

28、loImpl,代碼 如下: /* * * InforGuard Copyright 2010 CVICSE, Co.ltd . * All rights reserved. * * Package: com.cvicse.inforguard.utmp.example.hello.impl * FileName: HelloImpl.java * */ package com.cvicse.inforguard.utmp.example.hello.impl; import com.cvicse.inforguard.utmp.example.hello.IHello; /* * * 描述:

29、* * 服務(wù)的實(shí)現(xiàn) * * 創(chuàng)建日期 2010-6-1 * * author li_ming * version 1.0 * */ public class HelloImpl implements IHello /* 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 14 * 構(gòu)造函數(shù) */ public HelloImpl() System.out.println(“HelloImpl starting“); /* (non-Javadoc) * see com.cvicse.inforguard.utmp.example.hello.IHello#sayHello(java.lang.Strin

30、g) */ public String sayHello(String name) String result = “hello “ + name; return result; 為了能夠管理這些構(gòu)件和讓 DService 框架識(shí)別我們寫(xiě)的 pojo 并將之發(fā)布為 Hello 的 OSGi 服務(wù), 我們還必須要定義一個(gè)元數(shù)據(jù)文件,名稱為 metadata.xml(詳見(jiàn)附件七),位于本 project 的根目錄下。 其內(nèi)容如下: Component 節(jié)點(diǎn)聲明了一個(gè)構(gòu)件,classname 聲明了該構(gòu)件實(shí)現(xiàn)類,immediate 聲明該構(gòu)件不是 即時(shí)構(gòu)件,也就是說(shuō)當(dāng) OSGi 框架中發(fā)現(xiàn)需要該服務(wù)

31、時(shí)才實(shí)例化該構(gòu)件。 Component 下的 service 節(jié)點(diǎn)表示本構(gòu)件會(huì)以構(gòu)件實(shí)例為服務(wù)對(duì)象對(duì)外提供 OSGi 服務(wù),服務(wù)的 接口默認(rèn)暴露出當(dāng)前構(gòu)件實(shí)現(xiàn)的所有接口,也可以在 service 節(jié)點(diǎn)下加入 provide 節(jié)點(diǎn)來(lái)決定該暴露 的詳細(xì)的接口,以及對(duì)應(yīng)的服務(wù)屬性等,詳見(jiàn)附件七。 Instance 節(jié)點(diǎn)表示在當(dāng)前構(gòu)件在運(yùn)行時(shí)被 DService 框架初始化完畢之后,根據(jù)配置來(lái)確定實(shí)例 化構(gòu)件的次數(shù),即有多少個(gè) Instance 就會(huì)有多少個(gè)構(gòu)件實(shí)例(注意不是指服務(wù)對(duì)象)。 源代碼和元數(shù)據(jù)定義完成之后,還需要使 hello-impl 工程支持 Maven,并修改 pom.xml: or

32、g.codehaus.mojo build-helper-maven-plugin 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 15 1.1 add-source generate-sources add-source src org.apache.felix maven-bundle-plugin 2.0.0 true $pom.artifactId com.cvicse.inforguard.utmp.example.hello.impl metadata.xml org.trustie.loong.modules.loong-dservice loong-dservice-plugin 1

33、.0.0 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 16 dservice-bundle com.cvicse.inforguard.utmp.example hello-api 0.0.1 bundle 本 project 所有工作做完之后,同樣只需要在 eclipse 中右擊 project,Run as Maven install,maven 會(huì)為我們將 project 打包成為 DService Bundle 安裝到 maven 本地庫(kù)中,并在 target 目 錄下生成同樣一份 jar 文件。 最后建立一個(gè)服務(wù)消費(fèi)工程 hello-client,雙擊 MANIFEST.MF,在 De

34、pendencies 中添加 com.cvicse.inforguard.utmp.example.hello的依賴,詳見(jiàn) 3.3.2. 。 添加一個(gè)服務(wù)使用類:com.cvicse.inforguard.utmp.example.hello.client.HelloClient,代碼如下: /* * * InforGuard Copyright 2010 CVICSE, Co.ltd . * All rights reserved. * * Package: com.cvicse.inforguard.utmp.example.hello.client * FileName: HelloCl

35、ient.java * */ package com.cvicse.inforguard.utmp.example.hello.client; import com.cvicse.inforguard.utmp.example.hello.IHello; /* * 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 17 * 描述: 服務(wù)消費(fèi)類 * 創(chuàng)建日期 2010-6-1 * author li_ming * version 1.0 * */ public class HelloClient implements Runnable /* * 兩個(gè)調(diào)用之間的延遲。 */ private static

36、final int DELAY = 5000; /* * Hello 服務(wù)。 * 通過(guò)容器注入。 * */ private IHello m_hello; / 需要引用的服務(wù)。 /* * 結(jié)束標(biāo)志。 */ private boolean m_end = false; /* * 名稱屬性。 * 通過(guò)容器注入。 */ private String m_name; public HelloClient() System.out.println(“HelloClient starting“); /* * Run 方法。 * see java.lang.Runnable#run() */ public

37、void run() while (!m_end) try invokeHelloServices(); 開(kāi)發(fā)案例 核高基 6-1 項(xiàng)目 使用手冊(cè) 18 Thread.sleep(DELAY); catch (InterruptedException ie) /* 將重新檢查 */ /* * 調(diào)用 hello 服務(wù)。 */ public void invokeHelloServices() for (int i = 0; m_hello != null leave empty if not used. releases admin loong2009 snapshots admin loong

38、2009 mirrorId repositoryId Human Readable Name for this Mirror. http:/ Trustie Repository1 central Human Readable Name for this Mirror. http:/58.20.54.58/content/groups/treleases Trustie Snapshots Repository1 public-snapshots Human Readable Name for this Mirror. http:/58.20.54.58/content/groups/tsna

39、pshots | or the command line, profiles have to have an ID that is unique. | | An encouraged best practice for profile identification is to use a consistent 附錄一 SETTING.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 29 naming convention | for profiles, such as env-dev, env-test, env-production, user- jdcasey, user-brett, etc.

40、| This will make it more intuitive to understand what the set of introduced profiles is attempting | to accomplish, particularly when you only have a list of profile ids for debug. | | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo. jdk-1.4 1.4 jdk1

41、4 Repository for JDK 1.4 builds http:/ default always | org.myco.myplugins | myplugin | 附錄一 SETTING.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 30 | | $tomcatPath | | | . | | NOTE: If you just wanted to inject this configuration whenever someone set target-env to | anything, you could just leave off the inside the activati

42、on- property. | env-dev target-env dev /path/to/tomcat/instance alwaysActiveProfile anotherAlwaysActiveProfile 附錄二 常用動(dòng)名詞 核高基 6-1 項(xiàng)目 使用手冊(cè) 31 附附錄錄二二 常常用用動(dòng)動(dòng)名名詞詞 常用名稱:常用名稱: 用戶user角色role 知識(shí)庫(kù)knowledge流程workflow 策略rule 資產(chǎn)asset 報(bào)表report 工單order 配置config組group 代理agent 視圖view 區(qū)域zone 機(jī)房machine room 線line節(jié)點(diǎn)node

43、 機(jī)架frame 動(dòng)作action 風(fēng)險(xiǎn)risk 拓?fù)鋞opology 模板template中心center 適配器adapter 權(quán)限popedom 日志log 狀態(tài)state 威脅threat 常用動(dòng)詞:常用動(dòng)詞: 添加add 刪除del 修改modify 查詢(返回一個(gè)對(duì)象)load 查詢(返回一組對(duì)象且查 詢包含過(guò)濾條件) query枚舉enum 分析analyse 統(tǒng)計(jì)stat 關(guān)聯(lián)correlate評(píng)估assess 獲取get設(shè)置set 附錄三 本地化資源文件的創(chuàng)建方法 核高基 6-1 項(xiàng)目 使用手冊(cè) 32 附附錄錄三三 本本地地化化資資源源文文件件的的創(chuàng)創(chuàng)建建方方法法 首先需在

44、Eclipse 中安裝 JInto 插件,安裝地址為 http:/www.guh-software.de/eclipse/。 在 src 中新建一個(gè) ResourceBundle File 文件 打開(kāi)的對(duì)話框中 設(shè)置屬性文件前綴名 name 比如 eventInfo 選擇 language Chinese 選擇 Country China 點(diǎn)擊添加,添加一個(gè)文件為 eventInfo_zh_CN.properties 之后可以多次選擇 language conntry 點(diǎn)擊添加 創(chuàng)建多個(gè) properties 文件 點(diǎn)擊完成 finish 打開(kāi)剛才創(chuàng)建的文件 Keys 列設(shè)置鍵 Chinese

45、(china)列設(shè)置相應(yīng)的值 附錄四 MANIFEST.MF 核高基 6-1 項(xiàng)目 使用手冊(cè) 33 附附錄錄四四 MANIFEST.MF Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor Bundle-Localization: localization/eventInfo Bundle-SymbolicName: loong-admin-tools-event;singleton:=true Bundle-Version: 1.0.0.

46、qualifier Require-Bundle: org.eclipse.rap.ui,loong-integration-commons;bundle-version=“1.0.0“ Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Import-Package: org.osgi.service.event;version=“1.2.0“,org.trustie.loong.eventadmin.api 附錄五 POM.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 34 附附錄錄五五 po

47、m.xml 4.0.0 com.cvicse.inforguard.utmp.modules.web.usermanager usermanager 1.0.0 /pom.xml com.cvicse.inforguard.utmp.modules.web.usermanager user-manager-api 用戶管理 bundle 1.0.0 org.trustie.loong.modules.loong-webconsole loong-webconsolebundle-plugin 1.0.0 true localization, plugin.xml, resources 附錄五

48、POM.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 35 org.codehaus.mojo build-helper-maven-plugin 1.1 add-source generate-sources add-source src org.apache.felix maven-bundle-plugin 2.0.0 true $pom.artifactId com.cvicse.inforguard.utmp.example.hello org.trustie.loong.modules.loong-dservice loong-dservice-plugin 1.0.0 附錄五 POM.

49、XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 36 dservice-bundle org.trustie.loong.webconsole.modules loong-integration-commons 1.0.0-SNAPSHOT org.trustie.loong.modules loong-eventadmin 1.0.1 附件六 OSGI命令說(shuō)明 核高基 6-1 項(xiàng)目 使用手冊(cè) 37 附附件件六六 OSGi 命命令令說(shuō)說(shuō)明明 ss 命令列出所有 bundle,效果如下: 在 OSGi 控制命令臺(tái)中利用 install 命令安裝 exampleClient Bundle 應(yīng)用,用 ss

50、命令查看安裝后 的 Bundle 應(yīng)用信息及其狀態(tài)。效果如下: 在 OSGi 控制命令臺(tái)中利用 start 命令安裝 exampleClient Bundle 應(yīng)用,用戶可輸入姓名,利用 姓名查詢服務(wù)來(lái)判斷所輸入姓名是否有效,用 ss 命令查看啟動(dòng)后的 Bundle 應(yīng)用信息及其狀態(tài)。效 果如下: 附件六 OSGI命令說(shuō)明 核高基 6-1 項(xiàng)目 使用手冊(cè) 38 用戶在在 OSGi 控制命令臺(tái)中,可利用 stop 命令來(lái)停止指定的 Bundle 應(yīng)用,和 start 使用方式 一樣。 用戶在在 OSGi 控制命令臺(tái)中,可利用 uninstall 命令來(lái)卸載指定的 Bundle 應(yīng)用,和 star

51、t 使用 方式一樣。 附件七 METADATA.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 39 附附件件七七 metadata.xml 在使用聲明式服務(wù)進(jìn)行開(kāi)發(fā)時(shí),我們可以在元數(shù)據(jù)文件 metadata.xml 文件中對(duì)構(gòu)件自身屬性, 以及構(gòu)件所包含的各方面動(dòng)態(tài)的進(jìn)行配置,這種方式為我們?cè)?OSGi 環(huán)境下開(kāi)發(fā)一個(gè)新的服務(wù)帶來(lái) 了很大的便利。 DService 元數(shù)據(jù)的根元素。一個(gè) XML 元數(shù)據(jù)文件只有一個(gè) DService 根節(jié)點(diǎn) component DService 節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn),通過(guò)上文介紹,我們可以知道,一個(gè)構(gòu)件對(duì)應(yīng)于一個(gè)普通的 java 類, 以下將對(duì)構(gòu)件所包含的屬性進(jìn)行介紹。 定

52、義的構(gòu)件為: . 對(duì)應(yīng)得構(gòu)件實(shí)現(xiàn)類如下: public class BorrowImpl implements Borrow, BorrowMoneyBuy private int m_price; public static BorrowImpl getBorrowImpl(BundleContext bc) BorrowImpl temp = new BorrowImpl(); return temp; public void setPrice(int n) this.m_price = n; 附件七 METADATA.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 40 . component

53、節(jié)點(diǎn)信息的詳細(xì)描述列表如下: 屬性名是否必需默認(rèn)值說(shuō)明 classnameyes包括包名在內(nèi)的構(gòu)件的實(shí)現(xiàn)類完整類名。 namenoclassname 對(duì)應(yīng) 的值 構(gòu)件的唯一名稱。定義構(gòu)件實(shí)例時(shí)可以通過(guò)名稱聲 明與之匹配,成為該構(gòu)件的實(shí)例。 immediatenofalsetrue:即時(shí)構(gòu)件 false:延遲構(gòu)件 publicnotrue是否將構(gòu)件暴露為服務(wù)。 structurenotrue是否支持構(gòu)件內(nèi)省。 service component 的下級(jí)節(jié)點(diǎn),聲明該構(gòu)件所提供的服務(wù)。默認(rèn)將所有實(shí)現(xiàn)的接口都發(fā)布成服務(wù)。在 service 節(jié)點(diǎn)下 定義了下級(jí)節(jié)點(diǎn) provide 來(lái)提供具體的服務(wù),一個(gè)

54、 service 節(jié)點(diǎn)下可以定義多個(gè) provide 節(jié)點(diǎn); 在 provide 節(jié)點(diǎn)下也可以定義多個(gè)下級(jí)節(jié)點(diǎn) property,表示此方面構(gòu)件提供的服務(wù)屬性。以下是 service 方面的示例。 . provide 節(jié)點(diǎn)信息的詳細(xì)描述列表如下: 屬性名是否必須默認(rèn)值說(shuō)明 nameno該服務(wù)對(duì)象的唯一名稱。 interfacesno所有已實(shí)現(xiàn)的 接口 需要暴露的服務(wù)接口列表,多個(gè)接口用“,”逗號(hào) 分隔,默認(rèn)將構(gòu)件實(shí)現(xiàn)類的所有接口都發(fā)布成為服 務(wù)。 strategynoservice服務(wù)對(duì)象創(chuàng)建策略, 取值可以是: singletonserviceinstance。 rankingno0當(dāng)前服務(wù)

55、提供者的優(yōu)先等級(jí)。 property 元素詳細(xì)描述如下: 附件七 METADATA.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 41 屬性名是否必須默認(rèn)值屬性說(shuō)明 field見(jiàn) 1屬性關(guān)聯(lián)的字段,當(dāng)沒(méi)有聲明 method 時(shí), DService 框架會(huì)自動(dòng)注入新的值。 nameyes屬性名稱。 method見(jiàn) 1屬性關(guān)聯(lián)的字段的 setter 方法名稱,當(dāng)屬性被改變 時(shí),容器調(diào)用該方法。 type見(jiàn) 2java.lang.String屬性類型,只支持包括 String(默認(rèn))在內(nèi)的簡(jiǎn)單 類型。 valueno屬性默認(rèn)值。 mandatorynofalse本服務(wù)屬性是強(qiáng)制屬性,當(dāng)該項(xiàng)為 true 時(shí)

56、屬性必須 有值,該項(xiàng)默認(rèn)是 false。 immutablenofalse本服務(wù)屬性是否可變,該項(xiàng)默認(rèn)是 false。 說(shuō)明: 1.當(dāng)沒(méi)有聲明 field 屬性,但是聲明了該方 method 屬性時(shí),框架調(diào)用對(duì)應(yīng)的方法進(jìn)行注值, 當(dāng)僅聲明了 field 屬性,則由容器進(jìn)行注入。這 2 個(gè)屬性不能同時(shí)聲明。 2.當(dāng)聲明了 field 時(shí),不需要聲明該屬性,默認(rèn)使用 field 對(duì)應(yīng)字段的類型。當(dāng)沒(méi)有聲明 field 時(shí),該屬性需要聲明。 properties component 的下級(jí)節(jié)點(diǎn),聲明該構(gòu)件的屬性。在此節(jié)點(diǎn)中可以定義多個(gè)屬性節(jié)點(diǎn) property,定 義的這些屬性可以在多個(gè)地方引用,包

57、括 service 和 instance 等方面。在 service 方面使用屬性,則 在此構(gòu)件發(fā)布服務(wù)的同時(shí)這些屬性也發(fā)布成服務(wù)屬性;在 instance 方面使用屬性,則這些屬性會(huì)覆 蓋 service 方面或 properties 方面所定義的屬性。 properties 節(jié)點(diǎn)信息的詳細(xì)描述列表如下: 屬性名是否必須默認(rèn)值說(shuō)明 propagationnofalse傳播屬性,構(gòu)件屬性是否發(fā)布成為服務(wù)屬性。 pidno構(gòu)件成為受管服務(wù)后的唯一標(biāo)識(shí)符,用來(lái)通過(guò) Configuration Admin 重新配置構(gòu)件的屬性。 updatedno構(gòu)件實(shí)現(xiàn)類中一個(gè)具體的方法名稱。 property 元

58、素詳細(xì)描述如下: 屬性名是否必 須 默認(rèn)值屬性說(shuō)明 field見(jiàn) 1屬性關(guān)聯(lián)的字段,當(dāng)沒(méi)有聲明 method 時(shí), DService 框架會(huì)自動(dòng)注入新的值。 nameyes屬性名稱。 method見(jiàn) 1屬性關(guān)聯(lián)的字段的 setter 方法名稱,當(dāng)屬性被改變 時(shí),容器調(diào)用該方法。 附件七 METADATA.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 42 type見(jiàn) 2java.lang.String屬性類型,只支持包括 String(默認(rèn))在內(nèi)的簡(jiǎn)單 類型。 valueno屬性默認(rèn)值。 mandatorynofalse本服務(wù)屬性是強(qiáng)制屬性,當(dāng)該項(xiàng)為 true 時(shí)屬性必須 有值,該項(xiàng)默認(rèn)是 fals

59、e。 immutablenofalse 本服務(wù)屬性是否可變,該項(xiàng)默認(rèn)是 false。 說(shuō)明: 3.當(dāng)沒(méi)有聲明 field 屬性,但是聲明了該方 method 屬性時(shí),框架調(diào)用對(duì)應(yīng)的方法進(jìn)行注值, 當(dāng)僅聲明了 field 屬性,則由容器進(jìn)行注入。這兩個(gè)屬性不能同時(shí)聲明。 4.當(dāng)聲明了 field 時(shí),不需要聲明該屬性,默認(rèn)使用 field 對(duì)應(yīng)字段的類型。當(dāng)沒(méi)有聲明 field 時(shí),該屬性需要聲明。 reference component 的下級(jí)節(jié)點(diǎn),聲明該構(gòu)件所引用的服務(wù)。以下是構(gòu)件實(shí)現(xiàn)類及對(duì)應(yīng)的元數(shù)據(jù)文件。 public class ServiceClient implements Runn

60、able private Hello m_hello; private Borrow m_borrow; public void start() . public void stop() . public void bindBorrow(Borrow o) this.m_borrow = o; public void unBindBorrow() this.m_borrow = null; 元數(shù)據(jù)文件內(nèi)容如下: =1)“ / 附件七 METADATA.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 43 reference 元素用來(lái)聲明引用服務(wù),是 component 的下級(jí)元素。詳細(xì)描述列表如下:

61、屬性名是否必須默認(rèn)值說(shuō)明 idno當(dāng)前構(gòu)件服務(wù)引用元素的唯一標(biāo)識(shí)。 field見(jiàn) 1聲明構(gòu)件實(shí)現(xiàn)類中需要引用服務(wù)的字段。該字段會(huì) 被容器注入實(shí)際服務(wù)對(duì)象。 filterno指定 LDAP 過(guò)濾器用來(lái)過(guò)濾服務(wù)提供者。 bind見(jiàn) 1指定服務(wù)綁定的方法,值為構(gòu)建實(shí)現(xiàn)類中的方法名 稱,當(dāng)服務(wù)對(duì)象可用時(shí)被容器調(diào)用。 unbind見(jiàn) 1指定取消服務(wù)綁定的方法,值為構(gòu)建實(shí)現(xiàn)類中的方 法名稱,當(dāng)服務(wù)對(duì)象變?yōu)椴豢捎脮r(shí)被調(diào)用。 interfacesyes接口指當(dāng)前引用服務(wù)的接口類型。 cardinalityyes11 01 Optional and unary. 11 Mandatory and unary (

62、Default) . (0,1 0n Optional and multiple. 0, ) 1n Mandatory and multiple. (0, ) policynostatic引用服務(wù)的綁定規(guī)則,支持三種規(guī)則, staticdynamic dynamic-priority。 comparatorno該項(xiàng)可以指定一個(gè)比較器,值為位于 bundle 中的 比較器完整類名。 說(shuō)明:1. 服務(wù)對(duì)象的獲取定義field時(shí)使用主動(dòng)獲取策略,定義bind和unbind方法則使用事件驅(qū)動(dòng) 策略,當(dāng)二者同時(shí)定義則事件驅(qū)動(dòng)策略優(yōu)先。 lifecyle component 的下級(jí)節(jié)點(diǎn),描述該構(gòu)件狀態(tài)改變

63、時(shí)回調(diào)的方法,控制該構(gòu)件的啟動(dòng)與停止?fàn)顟B(tài)。 使用 lifecycle 元素聲明構(gòu)件生命期控制方法,是 component 的下級(jí)節(jié)點(diǎn),描述該構(gòu)件狀態(tài)改變 時(shí)回調(diào)的方法。lifecycle 元素詳細(xì)描述如下: 屬性名是否必須默認(rèn)值說(shuō)明 validno當(dāng)構(gòu)件的狀態(tài)變?yōu)?valid 的時(shí)候,回調(diào)該項(xiàng)定義的 方法。該方法必須是在構(gòu)件實(shí)現(xiàn)類中定義的方法。 invalidno當(dāng)構(gòu)件的狀態(tài)變?yōu)?invalid 的時(shí)候,回調(diào)該項(xiàng)定義 的方法。該方法必須是在構(gòu)件實(shí)現(xiàn)類中定義的方法。 示例: 附件七 METADATA.XML 核高基 6-1 項(xiàng)目 使用手冊(cè) 44 advisor component 的下級(jí)節(jié)點(diǎn),聲

64、明通知器,在此節(jié)點(diǎn)下可以定義多個(gè)切入點(diǎn) pointcut 和多個(gè)通知 advice,而且在通知 advice 節(jié)點(diǎn)下可以定義屬性節(jié)點(diǎn) property,該屬性可以賦值給通知,但通知要 能夠接收屬性的話,必須實(shí)現(xiàn) ConfigurableAdvice 接口。 示例: 構(gòu)件實(shí)現(xiàn)類 public class AopComponent public void start() System.out.println(“AopComponent has been started.“); public void stop() System.out.println(“AopComponent has been

65、stoped“); 通知類 public class HelloAdvice implements MethodInterceptor,ConfigurableAdvice private String level = “info“; public void onEntry(Object pojo, Method method, Object args) System.out.println(level + “ Entry pojo: “ + pojo.getClass() + “ method: “ + method.toString(); public void onError(Object pojo, Method method, Throwable throwable) System.out.println(level

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!