ItcastOA文檔1整體說明準備環(huán)境基礎(chǔ)功能_第1頁
ItcastOA文檔1整體說明準備環(huán)境基礎(chǔ)功能_第2頁
ItcastOA文檔1整體說明準備環(huán)境基礎(chǔ)功能_第3頁
ItcastOA文檔1整體說明準備環(huán)境基礎(chǔ)功能_第4頁
ItcastOA文檔1整體說明準備環(huán)境基礎(chǔ)功能_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1. 整體說明1.1. 項目說明1.1.1. OA概述OA是Office Automation的縮寫,本意為利用技術(shù)的手段提高辦公的效率,進而實現(xiàn)辦公的自動化處理。實現(xiàn)信息化、無紙化辦公,可方便的生成統(tǒng)計報表等。OA是OFFICE AUTOMATION的縮寫,本意為利用技術(shù)的手段提高辦公的效率,進而實現(xiàn)辦公的自動化處理。采用Internet/Intranet技術(shù),基于工作流的概念,使企業(yè)內(nèi)部人員方便快捷地共享信息,高效地協(xié)同工作;改變過去復(fù)雜、低效的手工辦公方式,實現(xiàn)迅速、全方位的信息采集、信息處理,為企業(yè)的管理和決策提供科學(xué)的依據(jù)。OA軟件解決企業(yè)的日常管理規(guī)范化、增加企業(yè)的可控性、提高企業(yè)

2、運轉(zhuǎn)的效率的基本問題。范圍涉及日常行政管理、各種事項的審批、辦公資源的管理、多人多部門的協(xié)同辦公、以及各種信息的溝通與傳遞??梢愿爬ǖ恼f,OA軟件跨越了生產(chǎn)、銷售、財務(wù)等具體的業(yè)務(wù)范疇,更集中關(guān)注于企業(yè)日常辦公的效率和可控性,是企業(yè)提高整體運轉(zhuǎn)能力不可缺少的軟件工具。1.1.2. 本系統(tǒng)作用組織的核心競爭力源自單位對內(nèi)外部資源的有效利用。對它們之間的關(guān)系進行協(xié)調(diào),最大限度的發(fā)揮所有資源的作用,并用系統(tǒng)的觀點,在整個系統(tǒng)價值最大化的基礎(chǔ)上來發(fā)揮各個資源的作用,使資源的運作產(chǎn)生協(xié)同效用。因此可通過協(xié)同辦公系統(tǒng)打造單位的核心競爭力。本協(xié)同辦公系統(tǒng)的主要作用為:1、 建立內(nèi)部的通信平臺。2、 建立信息

3、發(fā)布的平臺。3、 文檔管理的自動化。4、 工作流程的自動化。5、 行政日常事務(wù)處理。6、 安全機制的可靠性。本系統(tǒng)旨在加速單位信息化進程,充分利用計算機和現(xiàn)代通訊手段面向單位服務(wù)。建立單位內(nèi)部信息交流的快速通道,以共享信息資源。強化部門業(yè)務(wù)管理,加強各業(yè)務(wù)部門之間的交流。實現(xiàn)單位信息的快速上傳下達,促進協(xié)同辦公。提高辦公效率,為各級領(lǐng)導(dǎo)及業(yè)務(wù)人員提供輔助辦公和決策服務(wù)。1、 本系統(tǒng)將最大限度地提高辦公效率和辦公質(zhì)量,降低管理和辦公成本,改善辦公環(huán)境和條件,提高辦公管理和決策的自動化和科學(xué)化水平。2、 以人為中心,致力于幫助用戶實現(xiàn)共享資源、規(guī)范流程、推動執(zhí)行的目的。幫助用戶節(jié)省辦公費用,減少中

4、間環(huán)節(jié),優(yōu)化業(yè)務(wù)流程,提高整體效率,促進管理進步。簡單的說,有以下兩點:1,利用技術(shù)的手段提高辦公的效率2,信息化,可方便的生成統(tǒng)計報表等。1.1.3. 設(shè)計原則以應(yīng)用為核心,要突出“實用、易用、簡潔、穩(wěn)定”。既注重實效,滿足用戶的現(xiàn)實需要,又為系統(tǒng)的后續(xù)升級和擴展留有余地。在技術(shù)實現(xiàn)上,要突出“結(jié)構(gòu)清晰、實現(xiàn)合理、通俗易懂(簡單)”。1. 實用:滿足用戶現(xiàn)實需要,解決實際問題,做細核心功能。2. 易用:使用方便,各項功能一目了然。滿足用戶的使用習(xí)慣,易使用、易維護、易升級。實現(xiàn)“傻瓜”式的操作,將實施、培訓(xùn)成本和周期降到最低。3. 簡潔:頁面簡潔,功能簡潔,每一個元素都有存在的意義。4. 穩(wěn)

5、定:從底層數(shù)據(jù)庫到功能層經(jīng)過嚴格測試,能在不同的硬件環(huán)境中長期平穩(wěn)運行。1.1.4. 功能說明OA是輔助辦公的軟件,使用OA與不使用OA相對比的好處是:可以用計算機管理所有的數(shù)據(jù),并可以方便的實現(xiàn)統(tǒng)計與報表的功能。提高辦公效率。(實現(xiàn)信息化)。以下是一個OA系統(tǒng)的全部功能列表:說明:不是所有的OA都有全部的功能,而是根據(jù)需要確定的。1.2. 項目實現(xiàn)說明1.2.1. 軟件開發(fā)的步驟說明需求確認概要設(shè)計詳細設(shè)計編碼單元測試集成測試系統(tǒng)測試維護。單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這么說,程序員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。執(zhí)行單元測試,就是為

6、了證明這段代碼的行為和我們期望的一致。集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求(如根據(jù)結(jié)構(gòu)圖組裝成為子系統(tǒng)或系統(tǒng),進行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現(xiàn)。系統(tǒng)測試是將已經(jīng)確認的軟件、計算機硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進行信息系統(tǒng)的各種組裝測試和確認測試,其目的是通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方,從而提出更加完善的方案。1.2.2. 在項目開發(fā)中,我們處于什么位置,要做哪些事情?1.2.3. 在課堂

7、上,我們要完成哪些功能,具體需求是什么?模塊功能說明組織與用戶管理崗位管理部門管理用戶管理系統(tǒng)權(quán)限初始化權(quán)限分配權(quán)限驗證權(quán)限網(wǎng)上交流-論壇版塊管理看帖、發(fā)帖、回帖文章管理審批流轉(zhuǎn)(工作流)表單模板管理審批流程管理審批流轉(zhuǎn)表單查詢說明:按列出的順序?qū)崿F(xiàn)功能。效果以靜態(tài)頁面為準(需求)。按靜態(tài)頁面做1.3. ItcastOA的整體設(shè)計1.3.1. 分層一、JavaEE的三層架構(gòu)二、關(guān)于分層的說明1,上面調(diào)用下面,即View調(diào)用Service,Service調(diào)用Dao。2,層與層之間用接口。除定義的接口外,不能使用其它層的特有類或接口。3,使用實體作為DTO(Data Transfer Object

8、,數(shù)據(jù)傳輸對象)要做到任一層換掉后,其他層不受影響。我們在此項目中使用兩層:View+Service即在Service中直接操作Hibernate.Session。因為如果使用三層,在Service中就會有一部分方法只是直接調(diào)用DAO中的方法。一般情況下只有在多個數(shù)據(jù)源的場合下適合引入DAO層。三、有關(guān)分層的幾個問題1,一定要分層嗎?不一定。假如公司要求你寫一個可以給指定員工發(fā)送短信的小程序,用于開會通知與自動發(fā)送生成祝福短信。這個程序很小,沒有多少行代碼,而且不變,這時不分層可以嗎?完全可以呀。但我們在寫程序時,還是要分層的,分層的程序結(jié)構(gòu)清晰,可維護性高。2,一定要3層嗎?不一定。分3層是

9、推薦的,而不是必須的,應(yīng)根據(jù)自己的具體情況進行安排。我們?nèi)绻褂?層的結(jié)構(gòu),用起來就麻煩,因為在Service中會有一部分方法只是直接調(diào)用Dao中的方法,而Dao中的方法只是調(diào)用Session完成某操作。此時分2層更好,即在Service中可直接操作Session,以簡化結(jié)構(gòu)。其實Hibernate已經(jīng)可以支持多種數(shù)據(jù)庫。3,一定要使用接口嗎?不一定。以前就有同學(xué)問我:“在設(shè)計程序時確定的技術(shù)在開發(fā)完成后一般不會更換的,實現(xiàn)類一般也不會更換,這種情況還用接口嗎,一般的小項目是不是可以不使用接口?”。是的,如果不會變(一般也不會變),這是完全可以的。我們所學(xué)習(xí)的框架、技術(shù)都是解決問題的推薦方案,

10、而不是必須要用的。遇到問題后優(yōu)先使用成熟的技術(shù)與方案,以避免很多潛在的或后發(fā)的問題,避免走不必要的彎路。1.3.2. 所用框架、技術(shù)編號工具版本說明1.Struts 2.JSTL 1.13.Hibernate 3實現(xiàn)持久化操作4.jBPM工作流支持5.Junit4單元測試6.jQuery說明:還有jQuery.validate與jQuery.treeview等小插件1.3.3. 開發(fā)環(huán)境操作系統(tǒng)Windows XP開發(fā)工具MyEclipse6.0數(shù)據(jù)庫MySqlWeb容器Tomcat6.0瀏覽器IE6說明:1, 推薦使用MyEclipse,這樣出現(xiàn)工具問題可以一起解決。當然也可以使用自已熟悉的

11、工具,如Eclipse、NetBeans、IntelliJ。現(xiàn)在的重點是代碼實現(xiàn),不是工具。應(yīng)使用有效的工具。2, 要注意使用的MySql與JDBC驅(qū)動的版本要兼容。3, 顯示的技術(shù)有兼容的問題,寫出的代碼可能在某些瀏覽器中不能正常運行,這就需要在寫代碼時多使用JS框架,讓框架幫我們解決兼容的問題。1.3.4. 代碼規(guī)范1, 命名:使用駝峰命名法。a) 類、接口:每個單詞的首字母大寫。例:MyDateConverterb) 變量、方法:第一個單詞的首字母小寫,其他單詞的首字母都大寫。例:myDateConverterc) 常量:全字字母都大寫,單詞之間使用_隔開。例,DEFAULT_PAGE_

12、SIZEd) 使用有意義的名稱,慎用縮寫。2, 注釋:在代碼中加入適當?shù)淖⑨專赫f明步驟,與說明非簡單邏輯。3, 空行:在代碼中加入適當?shù)目招?,就像寫文章時要分段一樣(增強可讀性)??傊WC代碼的有效、清晰、簡潔(à可讀)。1, 有效:這是第一目標,代碼要是可以解決問題的。2, 清晰:在有效的前提下,讓代碼清晰。3, 簡潔:代碼與邏輯應(yīng)盡量的簡單,不要是給別人講別人都聽不明白。1.3.5. 約定1, 工程中所有的文件都采用utf-8編碼。所有的頁面都是使用utf-8編碼,這樣方便解決表單內(nèi)容的亂碼問題。亂碼一般情況下是亂用編碼產(chǎn)生的。2, 實體的主鍵屬性的類型使用Long型。1.3

13、.6. 項目計劃功能知識點預(yù)計時間1. 基礎(chǔ)功能a) Dao設(shè)計b) 事務(wù)管理c) 表單亂碼d) 對象管理1. Struts基礎(chǔ)2. Hibernate基礎(chǔ)3. 過濾器1天2. 組織用戶管理a) 崗位管理b) 部門管理c) 用戶管理1. 一般的實體設(shè)計2. 實體映射(映射文件)3. 增刪改查功能4. 樹狀顯示5. 使用jQuery.validate進行表單驗證2天3. 系統(tǒng)權(quán)限a) 創(chuàng)建權(quán)限b) 分配權(quán)限c) 使用權(quán)限1. jQuery的一般使用2. 權(quán)限控制方案2天4. 論壇a) 論壇管理b) 論壇基本功能c) 文章管理1. 分頁2. 在線編輯器FCKeditor3天5. jBPM + 審批

14、流轉(zhuǎn)a) 工作流框架jBPMb) 審批流轉(zhuǎn)功能1. 工作流框架jBPM2. 工作流的一般應(yīng)用4天2. 準備環(huán)境2.1. 創(chuàng)建數(shù)據(jù)庫,要注意編碼1,使用MySql數(shù)據(jù)庫。2,創(chuàng)建數(shù)據(jù)庫時,要注意編碼要支持中文。3,建表語句如下:create database itcastoa default character set utf8;show create database itcastoa;說明:需要先運行Mysql的配置向?qū)?,把編碼配為GBK或UTF8。如果配成UTF8,在mysql命令行客戶端中就有亂碼,所以最好用GBK。2.2. 新建Web工程并進行配置2.2.1. 配置工具2.2.1.1.

15、 配置快捷鍵1, 把Context Assist設(shè)為Alt+/2, 把Word Completion 設(shè)為Alt+.3,其他常用快捷鍵說明:Alt+/Content Assist代碼提示Ctrl+T顯示類的繼承結(jié)構(gòu)Ctrl+O列出類中的成員(成員變量、方法等)Ctrl+/注釋/取消注釋Ctrl+Shift+O導(dǎo)入要使用的包、并去除不使用的包Ctrl+Shift+F格式化當前文件中的代碼/格式化選中的代碼Ctrl+Alt+Up復(fù)制當前行到下面Ctrl+Alt+Down復(fù)制當前行到上面Ctrl+D刪除當前行/刪除選中文本占的所有行Shift+Enter相當于按End后再按EnterAlt+Left

16、Alt+RightCtrl+Shift+X變?yōu)榇髮慍trl+Shift+Y變?yōu)樾?.2.1.2. 配置文件的默認編碼1, 設(shè)置工程的默認編碼為UTF-8。2, 配置JSP的默認編碼為utf-83, 配置JavaScript的默認編碼為utf-8說明:在MyEclipse7.x或MyEclipse8.x中不用修改,使用的是工程的編碼。2.2.1.3. 配置格式化的代碼樣式1, 使用Ctrl+Shift+F可以格式化代碼。2, 在WindowàPreferencesàJavaàCode StyleàFormatter中可以設(shè)置代碼樣式。 要把Java代碼與

17、注釋的行寬設(shè)為130。(其他使用默認樣式)3, 搜索XML Sources,修改xml的行寬為130。(不考慮打印的情況)2.2.1.4. MyEclipse工具使用說明1, 導(dǎo)入工程時可以直接選擇一個zip文檔:FileàImportàExisting Projects into Workspace->Select archive file。2, 工程改名后,發(fā)果發(fā)布到Tomcat下,對應(yīng)的應(yīng)用的名稱不一定改變。這個名稱是在MyEclipseà Web中的Web Context-root中配置的。新建一個Web Project,并設(shè)置工程的編碼為UTF-8

18、。2.2.2. 添加框架環(huán)境1, 添加Junit4的Jar包。2, JSTL1.1。JavaEE5中已經(jīng)帶了JSTL,但是發(fā)布時不會把JavaEE發(fā)布到Tomcat中,有時會報錯,說找不到JSTL。所以最好再加一下JSTL1.1的環(huán)境。3, 添加Struts環(huán)境:(使用向?qū)膳渲梦募?,然后再自己添加jar包)a) jar包(不要加antlr-、jstl-1.0.2、standard-1.0.2,因為有沖突)b) 配置文件(struts-config.xml、修改web.xml)、國際化資源文件、自定義標簽庫的TLD文件。配為*.do攔截的請求。4, 添加Hibernate環(huán)境:a) jar包

19、(含JDBC驅(qū)動的jar包)b) 配置文件()。5, 添加jBPM環(huán)境(Jbpm的jar包中已包含Hibernate的jar包)。說明:1, 不要引用外面的Jar包,應(yīng)全部拷貝到工程中。2.2.3. 配置數(shù)據(jù)庫修改Hibernate.cfg.xml中的數(shù)據(jù)庫連接信息。并在hibernate.cfg.xml中做如下配置:<!- 顯示sql語句 -><property name="show_sql">true</property><!- 自動更新表結(jié)構(gòu) -><property name="hbm2ddl.auto&

20、quot;>update</property>2.3. 工程中的資源分類(目錄與包結(jié)構(gòu))2.3.1. 目錄結(jié)構(gòu)源碼文件夾src項目源代碼 config配置文件 test單元測試WebRoot文件夾下 scriptJavaScript腳本文件 styleCSS樣式文件 WEB-INF/jspjsp頁面文件(再創(chuàng)建子文件夾分類存放)2.3.2. 包結(jié)構(gòu)使用三層:顯示層(View),業(yè)務(wù)層(Service),數(shù)據(jù)訪問層(Dao)(部分)包名說明cn.itcast.oa.domain實體(Domain)Dao接口Dao的實現(xiàn)類Service接口cn.itcast.oa.service

21、.implService的實現(xiàn)類Struts有關(guān)的類Struts的ActionStruts的FormBean(ActionForm)一些工具類cnView顯示Jsp + JSTL + Struts + jQuery Service業(yè)務(wù)邏輯JBPMDao數(shù)據(jù)訪問Hibernate3. 基礎(chǔ)功能有的環(huán)境,就可以寫具體功能了嗎?不可以。因為在寫具體功能時會用到一些公共的功能(基礎(chǔ)功能。如事務(wù)管理,在每個模塊中都會用到,我們就需要先把這此公共的功能完成,再專心的寫每個模塊的具體功能。這些基礎(chǔ)功能要求都要理解,并獨立寫一遍。3.1. 設(shè)計BaseDao接口與BaseDaoImpl類每個實體都應(yīng)有一個對應(yīng)

22、的Dao,他封裝了對這個實體的數(shù)據(jù)庫操作。例實體Dao接口實現(xiàn)類=User-> UserDao-> UserDaoImplRole-> RoleDao-> RoleDaoImplDepartment-> DepartmentDao-> DepartmentDaoImplArticle-> ArticleDao-> ArticleDaoImpl.說明:4, 實體的Dao接口要繼承BaseDao接口。5, Dao的實現(xiàn)類要繼承DaoImplBase類。6, 也可以不繼承指定的接口或類,這樣就要自己寫相應(yīng)的方法。7, T getById(Long id

23、)與List<T> getByIdList(Long idList)不要合并為List getById(Long. ids),因為獲取一個對象時也是返回List,不方便。獲取 BaseDao的類型參數(shù)T的Class問題:1, 有了DaoBase與DaoImplBase,還要用UserDao、RoleDao嗎?答:要用。因為UserDao或RoleDao中的方法可以分為有公有的方法與特有的方法兩部分。公有的方法是通過繼承BaseDao得到的,特有的方法要寫在自己里面(BaseDao中是沒有的)。2, UserDaoImpl已經(jīng)繼承了BaseDaoImpl,就不實現(xiàn)UserDao可以嗎

24、?答:不可以。否則UserDao userDao = new UserDaoImpl(); 就不成立。使用反射獲取類型參數(shù)的真實類型的代碼如下:public DaoBaseImpl () Type type = this.getClass().getGenericSuperclass();ParameterizedType pt = (ParameterizedType) type;this.clazz = (Class<T>) pt.getActualTypeArguments()0;說明:1, 使用Session時,不要自己創(chuàng)建,也不要管理事務(wù),直接調(diào)用getSession()

25、即可。2, 暫時不實現(xiàn)getSession()方法,在后面的事務(wù)管理中實現(xiàn):protected Session getSession() throw new UnsupportedOperationException();3.2. 事務(wù)管理(Session管理)/ 返回與當前線程綁定的Session,如果沒有,就創(chuàng)建一個,與當前線程綁定后返回。/ 需要先配置hibernate.current_session_context_class=thread,才能使用SessionFactory.getCurrentSession();事務(wù)管理1,在同一個Service中調(diào)用的Dao中應(yīng)使用同一個Ses

26、sion?2,怎么不重復(fù)的寫Session與Transaction的管理代碼?1,同時執(zhí)行的多個請求使用的不同的多個線程。2,先后執(zhí)行的兩個請求有可能是使用的同一個線程。(線程池)ThreadLocalFilter.doFilter()打開Sessionchain.doFilter(); / 放行 -> ActionServlet -> Action -> Service關(guān)閉Session事務(wù)邊界。1,一個事務(wù)的范圍是一個業(yè)務(wù)操作。轉(zhuǎn)帳()A - 100; / update/ throw exceptionB + 100; / update2,在Dao中只是使用Session

27、,而不管理Session與事務(wù)3,一次請求的執(zhí)行過程1,在Action中要做什么?1,獲取用戶輸入2,進行業(yè)務(wù)處理(調(diào)用業(yè)務(wù)方法)3,給用戶反饋(轉(zhuǎn)到一個顯示頁面)1, 事務(wù)說明:事務(wù)的范圍是一個業(yè)務(wù)方法,而不是一個數(shù)據(jù)庫操作。可以用銀行轉(zhuǎn)賬的例子來說明。2, 事務(wù)管理就是要解決兩個問題:a) 在同一個請求中怎么使用同一個Session?b) 怎么才能不重復(fù)寫業(yè)務(wù)方法中的開關(guān)Session與管理事務(wù)的模板代碼?3, 解決思路:a) 第一個問題:使用SessionFactory.getCurrentSession()b) 第二個問題:使用過濾器,攔截的地址為“*.do”。4, 說明:a) 每個請

28、求使用一個線程來執(zhí)行。b) 同時執(zhí)行的多個請求是多個不同的線程。c) 先后的兩次請求,有可能使用的是同一個線程(Web容器有線程池)。要使用SessionFactory.getCurrentSession()方法,需要先在hibernate配置文件中做如下配置,否則不能使用(會報錯):“<property name="hibernate.current_session_context_class">thread</property>”配置后影響的行為如下:SessionFactory.getCurrentSession()獲取當前線程對應(yīng)的Sessi

29、on,如果沒有(一個線程中的第一次調(diào)用),就會創(chuàng)建一個Session并關(guān)聯(lián)到當前線程后返回。Tmit()提交事務(wù),在提交后會自動關(guān)閉SessionTransaction.rollback()回滾事務(wù),在回滾后會自動關(guān)閉Session說明:如果配置了currentSessionContext,在提交或回滾事務(wù)后會自動關(guān)閉Session。使用時就不要再調(diào)用關(guān)閉的代碼了。注意:SessionFactory.openSession()后,本次打開的Session不會與當前線程綁定,也就是說用SessionFactory.getCurrentSession()是拿不到的!采用前面的方式時,每一次請求到達

30、Filter時都將開啟一個事務(wù),而不論Service層是否會真正的與數(shù)據(jù)庫進行交互,為了避免在許多不會與數(shù)據(jù)庫進行交互但又開啟事務(wù)在性能上的損失,可以將事務(wù)的開啟延遲到具體的Service層中,這樣,僅僅在Service層需要進行交互的時候才開啟事務(wù)。不在使用Hibernate來獲取當前線程關(guān)聯(lián)的Session,就需要我們自己來實現(xiàn)這樣的功能。ThreadLocal派上了用場:private static ThreadLocal<Session> sessionMap = new ThreadLocal<Session>();ThreadLocal可以存放以當前線程對象

31、為key,以一個Session對象為value存的信息。3.3. 解決提交的表單內(nèi)容的中文亂碼因為所有的頁面都將使用utf-8編碼,所以提交的表單也是utf-8編碼。在過濾器中設(shè)置request的編碼為utf-8就可以解決POST方式提交表單的中文亂碼問題: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) request.setCharacterEncoding("utf-8");chain.doFilter(request, response);對于GET方式亂碼不做處理。如做處理,可使用包裝或代理的方式。3.4. 對象管理(BeanFactory)使用工廠模式完解決對實現(xiàn)類依賴的問題,并使用配置文件配置要使用的實現(xiàn)類。需要一個工具類,名為BeanFactory,其中有一個獲取實現(xiàn)類的方法,可以定義為:Object BeanFactory

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論