J2EE系統(tǒng)設(shè)計(jì)方案_第1頁(yè)
J2EE系統(tǒng)設(shè)計(jì)方案_第2頁(yè)
J2EE系統(tǒng)設(shè)計(jì)方案_第3頁(yè)
J2EE系統(tǒng)設(shè)計(jì)方案_第4頁(yè)
J2EE系統(tǒng)設(shè)計(jì)方案_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

J2EE系統(tǒng)技術(shù)方案J2EE系統(tǒng)技術(shù)方案 1一、 技術(shù)平臺(tái) 21. J2EE的概念 32. J2EE的優(yōu)勢(shì) 33. J2EE有關(guān)核心技術(shù) 44. 輕量級(jí)J2EE架構(gòu) 5二、 應(yīng)用布署架構(gòu) 61. 服務(wù)器操作系統(tǒng) 62. Web服務(wù)器架構(gòu) 63. 系統(tǒng)數(shù)據(jù)庫(kù) 6三、 開發(fā)核心技術(shù) 71. 軟件版本與工具 72. 重要技術(shù)方案 83. 業(yè)務(wù)邏輯層 94. 數(shù)據(jù)持久層 95. 域?qū)ο髮?96. WEB層 107. 任務(wù)調(diào)度 108. Ajax技術(shù) 10四、 系統(tǒng)緩存 101. 普通緩存方略 102. Hibernate二級(jí)緩存 113. JSP頁(yè)面緩存 11五、 軟件成本比較 11技術(shù)平臺(tái)J2EE(Java2EnterpriseEdition)是建立在Java2平臺(tái)上的公司級(jí)應(yīng)用的解決方案。J2EE技術(shù)的基礎(chǔ)便是Java2平臺(tái),不僅有J2SE平臺(tái)的全部功效,同時(shí)還提供了對(duì)EJB,Servlet,JSP,XML等技術(shù)的全方面支持,其最后目的是成為一種支持公司級(jí)應(yīng)用開發(fā)的體系構(gòu)造,簡(jiǎn)化公司解決方案的開發(fā),布署和管理等復(fù)雜問題。事實(shí)上,J2EE已經(jīng)成為公司級(jí)開發(fā)的工業(yè)原則和首選平臺(tái)。市場(chǎng)上能夠看到諸多實(shí)現(xiàn)了J2EE的產(chǎn)品,如BEAWebLogic,IBMWebSphere以及開源的JBoss等等。J2EE并非一種產(chǎn)品,而是一系列的原則,它是由sun公司提出的,符合這個(gè)原則的產(chǎn)品叫"實(shí)現(xiàn)"。J2EE的概念現(xiàn)在,Java2平臺(tái)有3個(gè)版本,它們是合用于小型設(shè)備和智能卡的Java2平臺(tái)Micro版(Java2PlatformMicroEdition,J2ME)、合用于桌面系統(tǒng)的Java2平臺(tái)原則版(Java2PlatformStandardEdition,J2SE)、合用于創(chuàng)立服務(wù)器應(yīng)用程序和服務(wù)的Java2平臺(tái)公司版(Java2PlatformEnterpriseEdition,J2EE)。J2EE是一種運(yùn)用Java2平臺(tái)來(lái)簡(jiǎn)化公司解決方案的開發(fā)、布署和管理有關(guān)的復(fù)雜問題的體系構(gòu)造。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java2平臺(tái)的原則版,J2EE不僅鞏固了原則版中的許多優(yōu)點(diǎn),例如"編寫一次、隨處運(yùn)行"的特性、方便存取數(shù)據(jù)庫(kù)的JDBCAPI、CORBA技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì)EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術(shù)的全方面支持。其最后目的就是成為一種能夠使公司開發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系構(gòu)造。J2EE體系構(gòu)造提供中間層集成框架用來(lái)滿足無(wú)需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺(tái),J2EE減少了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持EnterpriseJavaBeans,有良好的向?qū)еС执虬筒际饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。J2EE的優(yōu)勢(shì)

J2EE為搭建含有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制。

這之因此成為可能是由于J2EE擁有廣泛的業(yè)界支持和某些重要的'公司計(jì)算'領(lǐng)域供應(yīng)商的參加。每一種供應(yīng)商都對(duì)現(xiàn)有的客戶提供了不用廢棄已有投資,進(jìn)入可移植的J2EE領(lǐng)域的升級(jí)途徑。由于基于J2EE平臺(tái)的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配備上運(yùn)行,現(xiàn)有的操作系統(tǒng)和硬件也能被保存使用。高效的開發(fā):J2EE允許公司把某些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完畢。這樣開發(fā)人員能夠集中精力在如何創(chuàng)立商業(yè)邏輯上,對(duì)應(yīng)地縮短了開發(fā)時(shí)間。高級(jí)中間件供應(yīng)商提供下列這些復(fù)雜的中間件服務(wù)。狀態(tài)管理服務(wù):讓開發(fā)人員寫更少的代碼,不用關(guān)心如何管理狀態(tài),這樣能夠更快地完畢程序開發(fā)。持續(xù)性服務(wù):讓開發(fā)人員不用對(duì)數(shù)據(jù)訪問邏輯進(jìn)行編碼就能編寫應(yīng)用程序,能生成更輕巧,與數(shù)據(jù)庫(kù)無(wú)關(guān)的應(yīng)用程序,這種應(yīng)用程序更易于開發(fā)與維護(hù)。分布式共享數(shù)據(jù)對(duì)象CACHE服務(wù)--讓開發(fā)人員編制高性能的系統(tǒng),極大提高整體布署的伸縮性。支持異構(gòu)環(huán)境:J2EE能夠開公布署在異構(gòu)環(huán)境中的可移植程序?;贘2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計(jì)合理的基于J2EE的程序只需開發(fā)一次就可布署到多個(gè)平臺(tái)。這在典型的異構(gòu)公司計(jì)算環(huán)境中是十分核心的。J2EE原則也允許客戶訂購(gòu)與J2EE兼容的第三方的現(xiàn)成的組件,把他們布署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個(gè)方案所需的費(fèi)用??缮炜s性:公司必須要選擇一種服務(wù)器端平臺(tái),這種平臺(tái)應(yīng)能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進(jìn)行商業(yè)運(yùn)作的大批新客戶?;贘2EE平臺(tái)的應(yīng)用程序可被布署到多個(gè)操作系統(tǒng)上。例如可被布署到高端UNIX與大型機(jī)系統(tǒng),這種系統(tǒng)單機(jī)可支持64至256個(gè)解決器。(這是NT服務(wù)器所望塵莫及的)J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡方略。能消除系統(tǒng)中的瓶頸,允許多臺(tái)服務(wù)器集成布署。這種布署可達(dá)數(shù)千個(gè)解決器,實(shí)現(xiàn)可高度伸縮的系統(tǒng),滿足將來(lái)商業(yè)應(yīng)用的需要。穩(wěn)定的可用性:J2EE布署到可靠的操作環(huán)境中,支持長(zhǎng)久的可用性。某些J2EE布署在WINDOWS環(huán)境中,客戶也可選擇強(qiáng)健性能更加好的操作系統(tǒng)如Linux,SunSolaris、IBMOS/390。J2EE有關(guān)核心技術(shù)J2EE的多個(gè)組件、服務(wù)和API,進(jìn)行更加具體的敘述,在開發(fā)不同類型的公司級(jí)應(yīng)用時(shí),根據(jù)各自需求和目的的不同,應(yīng)當(dāng)如何靈活使用并組合不同的組件和服務(wù)。Servlet

Servlet是Java平臺(tái)上的CGI技術(shù)。Servlet在服務(wù)器端運(yùn)行,動(dòng)態(tài)地生成Web頁(yè)面。與傳統(tǒng)的CGI和許多其它類似CGI的技術(shù)相比,JavaServlet含有更高的效率并更容易使用。對(duì)于Servlet,重復(fù)的請(qǐng)求不會(huì)造成同一程序的多次轉(zhuǎn)載,它是依靠線程的方式來(lái)支持并發(fā)訪問的。JSP

JSP(JavaServerPage)是一種實(shí)現(xiàn)普通靜態(tài)HTML和動(dòng)態(tài)頁(yè)面輸出混合編碼的技術(shù)。從這一點(diǎn)來(lái)看,非常類似MicrosoftASP、PHP等技術(shù)。借助形式上的內(nèi)容和外觀體現(xiàn)的分離,Web頁(yè)面制作的任務(wù)能夠比較方便地劃分給頁(yè)面設(shè)計(jì)人員和程序員,并方便地通過JSP來(lái)合成。在運(yùn)行時(shí)態(tài),JSP將會(huì)被首先轉(zhuǎn)換成Servlet,并以Servlet的形態(tài)編譯運(yùn)行,因此它的效率和功效與Servlet相比沒有差別,同樣含有很高的效率。JDBC

JDBC(JavaDatabaseConnectivity,Java數(shù)據(jù)庫(kù)連接)API是一種原則SQL(StructuredQueryLanguage,構(gòu)造化查詢語(yǔ)言)數(shù)據(jù)庫(kù)訪問接口,它使數(shù)據(jù)庫(kù)開發(fā)人員能夠用原則JavaAPI編寫數(shù)據(jù)庫(kù)應(yīng)用程序。JDBCAPI重要用來(lái)連接數(shù)據(jù)庫(kù)和直接調(diào)用SQL命令執(zhí)行多個(gè)SQL語(yǔ)句。運(yùn)用JDBCAPI能夠執(zhí)行普通的SQL語(yǔ)句、動(dòng)態(tài)SQL語(yǔ)句及帶IN和OUT參數(shù)的存儲(chǔ)過程。Java中的JDBC相稱與Microsoft平臺(tái)中的ODBC(OpenDatabaseConnectivity)。JMS

JMS(JavaMessageService,Java消息服務(wù))是一組Java應(yīng)用接口,它提供創(chuàng)立、發(fā)送、接受、讀取消息的服務(wù)。JMSAPI定義了一組公共的應(yīng)用程序接口和對(duì)應(yīng)語(yǔ)法,使得Java應(yīng)用能夠和多個(gè)消息中間件進(jìn)行通信,這些消息中間件涉及IBMMQ-Series、MicrosoftMSMQ及純Java的SonicMQ。通過使用JMSAPI,開發(fā)人員無(wú)需掌握不同消息產(chǎn)品的使用辦法,也能夠使用統(tǒng)一的JMSAPI來(lái)操縱多個(gè)消息中間件。通過使用JMS,能夠最大程度地提高消息應(yīng)用的可移植性。JMS既支持點(diǎn)對(duì)點(diǎn)的消息通信,也支持公布/訂閱式的消息通信。JNDI

由于J2EE應(yīng)用程序組件普通分布在不同的機(jī)器上,因此需要一種機(jī)制方便于組件客戶使用者查找和引用組件及資源。在J2EE體系中,使用JNDI(JavaNamingandDirectoryInterface)定位多個(gè)對(duì)象,這些對(duì)象涉及EJB、數(shù)據(jù)庫(kù)驅(qū)動(dòng)、JDBC數(shù)據(jù)源及消息連接等。JNDIAPI為應(yīng)用程序提供了一種統(tǒng)一的接口來(lái)完畢原則的目錄操作,如通過對(duì)象屬性來(lái)查找和定位該對(duì)象。由于JNDI是獨(dú)立于目錄合同的,應(yīng)用還能夠使用JNDI訪問多個(gè)特定的目錄服務(wù),如LDAP、NDS和DNS等。輕量級(jí)J2EE架構(gòu)現(xiàn)在J2EE應(yīng)用中,由于應(yīng)用需求不同,架構(gòu)設(shè)計(jì)上分成兩種設(shè)計(jì)方式,即重量級(jí)J2EE架構(gòu)和輕量級(jí)J2EE架構(gòu)。銀行,電信,大型公司的業(yè)務(wù)系統(tǒng)邏輯復(fù)雜,結(jié)點(diǎn)分布廣泛,且普遍使用了物理上多層架構(gòu),事務(wù)規(guī)定性極高,對(duì)系統(tǒng)的穩(wěn)定性規(guī)定也是極高的,因此大多數(shù)使用重量級(jí)的EJB開發(fā)架構(gòu)。普通的中小型應(yīng)用系統(tǒng),所關(guān)注的是訪問速度與快速響應(yīng)市場(chǎng)需求變化,強(qiáng)大的系統(tǒng)緩存功效,傳統(tǒng)的大型分布式J2EE架構(gòu)就顯得不太適宜。本系統(tǒng)的開發(fā)基于J2EE的輕量級(jí)多層架構(gòu),即業(yè)界比較成熟的Struts2+Spring+Hibernate框架:Struts2實(shí)現(xiàn)MVC最為成熟的框架之一,在J2EE項(xiàng)目中應(yīng)用廣泛;Spring能夠?qū)崿F(xiàn)對(duì)Hibernate的無(wú)縫鏈接,合用于業(yè)務(wù)解決層;在數(shù)據(jù)持久層中,采用Hibernate這一功效強(qiáng)大的ORM映射工具。J2EE的三層構(gòu)造在業(yè)界是指表達(dá)層(Presentation),業(yè)務(wù)邏輯層(Businesslogic)以及基礎(chǔ)架構(gòu)層(Infrastructure)。一種最慣用的擴(kuò)展就是將三層體系擴(kuò)展為五層體系,即表達(dá)層(Presentation)、控制/中介層(Controller/Mediator)、領(lǐng)域?qū)?Domain)、數(shù)據(jù)持久層(DataPersistence)和數(shù)據(jù)源層(DataSource)。它其實(shí)是在三層架構(gòu)中增加了兩個(gè)中間層??刂?中介層位于表達(dá)層和領(lǐng)域?qū)又g,數(shù)據(jù)持久層位于領(lǐng)域?qū)雍突A(chǔ)架構(gòu)層之間。而輕量級(jí)架構(gòu)Struts2+Spring+Hibernate能夠?qū)崿F(xiàn)J2EE多層構(gòu)造,Struts2用于表達(dá)層、控制層,Spring用于業(yè)務(wù)解決層,而Hibernate用于數(shù)據(jù)持久層。應(yīng)用布署架構(gòu)服務(wù)器操作系統(tǒng)GSR系統(tǒng)將運(yùn)行在Linux操作系統(tǒng),Linux最大的優(yōu)點(diǎn)在于它作為服務(wù)器操作系統(tǒng)的強(qiáng)大功效,尚有它的可靠的性能,穩(wěn)定性與網(wǎng)絡(luò)安全性,是大型公司和網(wǎng)絡(luò)中心加高服務(wù)器首選的操作系統(tǒng),它提供了最慣用最廣泛使用的諸如負(fù)載均衡,遠(yuǎn)程鏡像等集成解決方案。J2EE作為一種跨操作系統(tǒng)平臺(tái)的應(yīng)用系統(tǒng)平臺(tái),在Linux上面能夠體現(xiàn)出非常好的性能。Web服務(wù)器架構(gòu)JBoss是一種運(yùn)行EJB的強(qiáng)健的、高質(zhì)量的和性能良好的J2EE應(yīng)用服務(wù)器。它是開放源代碼的項(xiàng)目,遵照最新的J2EE規(guī)范。從JBoss項(xiàng)目開始至今,它已經(jīng)從一種EJB容器發(fā)展成為一種基于的J2EE的一種web操作系統(tǒng)。含有革命性的JMX微內(nèi)核服務(wù)作為其總線構(gòu)造;面對(duì)服務(wù)的架構(gòu)(Service-OrientedArchitecture,SOA);含有統(tǒng)一的類裝載器,從而能夠?qū)崿F(xiàn)應(yīng)用的熱布署和熱卸載能力。JBoss集成了Tomcat做為Web服務(wù)器,Tomcat優(yōu)點(diǎn)是免費(fèi),實(shí)現(xiàn)J2ee規(guī)范最佳的應(yīng)用服務(wù)器,能夠極大地減少甲方的運(yùn)行成本。Tomcat是Apache的核心項(xiàng)目之一,也被SUN視作Servlet/JSP容器的一種重要參考實(shí)現(xiàn)而加以支持。因此SUN最新的Servlet/JSP規(guī)范,往往能夠很快地在Tomcat的新版本中得到體現(xiàn);Tomcat是一種小巧精巧的web應(yīng)用服務(wù)器,配備、安裝、運(yùn)行、布署web應(yīng)用都很簡(jiǎn)樸;Tomcat與開源緊密結(jié)合,開源軟件的生命力,往往與其社區(qū)的狀況有緊密的聯(lián)系。總而言之,采用此種服務(wù)器配備方案無(wú)論從成本上還是系統(tǒng)性能和安全上考慮都是非常適宜的。系統(tǒng)數(shù)據(jù)庫(kù)中心數(shù)據(jù)庫(kù)系統(tǒng)使用Oracle10g,oracle是業(yè)界各方面最佳的數(shù)據(jù)庫(kù)。節(jié)點(diǎn)數(shù)據(jù)庫(kù)使用MySQL,MySQL是最流行的開放源碼SQL數(shù)據(jù)庫(kù)管理系統(tǒng),它是由MySQLAB公司開發(fā)、公布并支持的。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),它是一種開放源碼軟件。MySQL含有良好的擴(kuò)展性,在數(shù)據(jù)訪問上碰到瓶頸時(shí),能夠布署MySQL集群來(lái)實(shí)現(xiàn)負(fù)載均衡。開發(fā)核心技術(shù)軟件版本與工具名稱版本號(hào)闡明JavaSE6.0Java虛擬機(jī)版本號(hào)J2EE1.4J2EE平臺(tái)版本號(hào)JSP2.0JSP界面編寫版本規(guī)范JSTL1.1JSP原則標(biāo)簽庫(kù)版本Servlet2.4Servlet引擎版本規(guī)范Struts2.1WEB層MVC框架版本Spring2.0輕量級(jí)業(yè)務(wù)邏輯層解決框架Xfire2.0WebService實(shí)現(xiàn)技術(shù)Hinbernate3.1ORM對(duì)象關(guān)系映射層版本XHtml1.1Html書寫版本規(guī)范CSS2.0Html樣式版本規(guī)范JQuery2.2Ajax框架版本號(hào)Ext2.0Javascript類庫(kù)Acige2.0權(quán)限控制框架開發(fā)工具:工具名稱工具版本闡明Eclipse3.3JavaIDEMyEclipse6.0J2EE開發(fā)工具PowerDesigner12數(shù)據(jù)庫(kù)設(shè)計(jì)工具JBoss4.2Java應(yīng)用服務(wù)器版本號(hào)Tomcat6.0開發(fā)測(cè)試服務(wù)器Oracle10gMysql5.18數(shù)據(jù)庫(kù)版本號(hào)重要技術(shù)方案系統(tǒng)架構(gòu)圖:從架構(gòu)圖中能夠看出系統(tǒng)分為四層:UI層:借助JSP,Struts實(shí)現(xiàn)業(yè)務(wù)層:借助SpringFramework進(jìn)行業(yè)務(wù)組件的組裝關(guān)聯(lián)。數(shù)據(jù)持久層:借助Hibernate實(shí)現(xiàn)域?qū)ο髮樱簩⑷坑驅(qū)ο髣澐衷谝环N層面采用這樣的四層架構(gòu)能夠達(dá)成下列效果:通過成熟的開源產(chǎn)品實(shí)現(xiàn)各層,同自己編寫代碼實(shí)現(xiàn),相比之下能縮短開發(fā)周期,且架構(gòu)所用到的開源產(chǎn)品都有很廣泛的顧客群,經(jīng)受過實(shí)踐的考驗(yàn),質(zhì)量和性能更有保障。層與層之間松散耦合,增加代碼重用率。各層分工明確,這樣也利于團(tuán)體的明確分工。業(yè)務(wù)邏輯層在實(shí)際的項(xiàng)目開發(fā)中,每個(gè)領(lǐng)域都會(huì)有自己獨(dú)特的業(yè)務(wù)邏輯,正由于這樣,致使項(xiàng)目中代碼高度耦合,原本有可能被重用的代碼或功效,由于與具體的業(yè)務(wù)邏輯綁定在一塊而造成很難被重用。因此我們將實(shí)現(xiàn)這些具體邏輯的代碼抽取出來(lái)分為單獨(dú)的一層,其目的是但愿通過層,來(lái)減少它與系統(tǒng)其它部分的耦合度?,F(xiàn)實(shí)中世界是變化的,既然該層實(shí)現(xiàn)的是現(xiàn)實(shí)中具體的業(yè)務(wù)邏輯,那該層的實(shí)當(dāng)代碼不可避免的會(huì)發(fā)生變更。如何讓該層適應(yīng)最大的變化,做到最小的改動(dòng)?普通我們?cè)诰幋a的時(shí)候會(huì)盡量考慮到同一業(yè)務(wù)多個(gè)實(shí)現(xiàn)的兼容和可擴(kuò)展的能力。因此我們?cè)谠搶咏柚薙pring,通過依賴注入、AOP應(yīng)用、面對(duì)接口編程,來(lái)減少業(yè)務(wù)組件之間的耦合度,增強(qiáng)系統(tǒng)擴(kuò)展性。Spring設(shè)計(jì)方案:IOC(InversionofControl),譯作反轉(zhuǎn)控制,其功效是將類之間的依賴轉(zhuǎn)移到外部的配備文獻(xiàn)中,避免在調(diào)用類中硬編碼實(shí)現(xiàn)類,因此也被稱作依賴注入(DependencyInjection)。在以往的開發(fā)中,普通運(yùn)用工廠模式(Factory)來(lái)解決這類問題,其實(shí)不管是工廠模式還是依賴注入,調(diào)用類與實(shí)現(xiàn)類不可能沒有任何依賴,工廠模式中工廠類普通根據(jù)參數(shù)來(lái)判斷該實(shí)例化哪個(gè)實(shí)現(xiàn)類,SpringIOC將需要實(shí)例的類在配備文獻(xiàn)文獻(xiàn)中配備。使用SpringIOC能得到工廠模式同樣的效果,并且編碼更加簡(jiǎn)潔。需要指出的是本系統(tǒng)全部的事務(wù)管理,資源管理的AOP方案都是配備在本層的接口之上,運(yùn)用Java對(duì)接口的動(dòng)態(tài)代理技術(shù)實(shí)現(xiàn),特別注意辦法命名規(guī)范,避免資源泄露。數(shù)據(jù)持久層本系統(tǒng)與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互非常大,普通我們歸為CRUD(添加、讀取、修改、刪除),這些操作占據(jù)了系統(tǒng)開發(fā)中大部分的時(shí)間,同時(shí)我們還需要考慮與數(shù)據(jù)庫(kù)交互的性能問題,如連接池、數(shù)據(jù)緩存等等。因此該層實(shí)現(xiàn)借助了Hibernate。而Hibernate已經(jīng)成為事實(shí)上的輕量級(jí)ORM原則,在某此方面甚至超越了實(shí)體EJB的功效。Hibernate是一種ORM工具,它不僅僅是實(shí)現(xiàn)了數(shù)據(jù)庫(kù)訪問性能優(yōu)化和與數(shù)據(jù)庫(kù)交互的慣用操作(CRUD),還將數(shù)據(jù)表與對(duì)象進(jìn)行了關(guān)聯(lián),讓開發(fā)人員能夠脫離數(shù)據(jù)表,而直接針對(duì)對(duì)象來(lái)與數(shù)據(jù)庫(kù)交互,開發(fā)人員不再需要用字符串去描述表中字段,這使得編碼中可書寫性提高。在本系統(tǒng)中已經(jīng)抽象出了一種CRUDDAO組件基類,運(yùn)用JDK5.0的泛型技術(shù),每個(gè)繼承此組件基類的DAO都持有本身的持久對(duì)象類型,非常方便操作。在此基類中涵蓋了大多數(shù)數(shù)據(jù)庫(kù)操作辦法,如CRUD,分頁(yè),屬性查詢等。域?qū)ο髮釉搶討?yīng)當(dāng)說是ORM思想的產(chǎn)物,ORM用對(duì)象關(guān)聯(lián)數(shù)據(jù)表,將這些對(duì)象的集合歸為一種專門的層即DomainLayer。域?qū)ο笫歉鲗又g數(shù)據(jù)通信的載體。事實(shí)上域?qū)ο笠彩且环N完完全全的業(yè)務(wù)對(duì)象,如User對(duì)象、Book對(duì)象。通過對(duì)業(yè)務(wù)的對(duì)象化,這有助于業(yè)務(wù)邏輯的重用。在傳統(tǒng)的多層J2EE系統(tǒng)中,為了避免層與層之間的互相侵入性,普通采用DTO(DataTransferObject數(shù)據(jù)傳輸對(duì)象)方式,但是本系統(tǒng)層次與業(yè)務(wù)并不復(fù)雜,侵入性也不會(huì)太高,為了性能上的考慮,決定使用PO(PersistenceObject持久對(duì)象)來(lái)取代DTO,個(gè)別復(fù)雜狀況除外。WEB層JSP2.0的特點(diǎn)是:

使動(dòng)態(tài)網(wǎng)頁(yè)的設(shè)計(jì)更加容易

簡(jiǎn)化JSP頁(yè)面,使得JSP頁(yè)面容易維護(hù)

使WEB應(yīng)用程序前后臺(tái)應(yīng)用更清晰

無(wú)需學(xué)習(xí)Java編程語(yǔ)言就能夠編寫JSP頁(yè)面本系統(tǒng)需要嚴(yán)格按照J(rèn)SP2.0規(guī)范編寫,具體JSP2.0規(guī)范請(qǐng)參考《JSP2.0技術(shù)手冊(cè)》。本系統(tǒng)Struts2全部的Action對(duì)象繼承ActionSupport基類,由前端注入攔截器(interceptor)將Spring業(yè)務(wù)解決對(duì)象自動(dòng)裝配到Struts2Action之中,開發(fā)人員不須手動(dòng)管理業(yè)務(wù)解決對(duì)象的實(shí)例化。Struts2配備文獻(xiàn)需要按模塊進(jìn)行分類。具體Struts2使用方式請(qǐng)參考《Struts2inAction》。任務(wù)調(diào)度本系統(tǒng)中含有大量的時(shí)間任務(wù)調(diào)度功效規(guī)定,如每天凌晨2:00進(jìn)行內(nèi)容索引更新,每月第一天00:00將最活躍顧客算出增加積分等。Quartz使用Trigger,Job以及JobDetail等對(duì)象來(lái)進(jìn)行多個(gè)類型的任務(wù)調(diào)度。Quartz能夠用來(lái)創(chuàng)立簡(jiǎn)樸或?yàn)檫\(yùn)行十個(gè),百個(gè),甚至是好幾萬(wàn)個(gè)Jobs這樣復(fù)雜的日程序表,這是asp,php,甚至等其它開發(fā)平臺(tái)望塵莫及的。使用這種技術(shù),能夠滿足我們的足夠復(fù)雜的業(yè)務(wù)邏輯。Ajax技術(shù)當(dāng)今互聯(lián)網(wǎng)時(shí)代,Ajax技術(shù)已經(jīng)是這個(gè)領(lǐng)域的技術(shù)領(lǐng)頭羊,Web2.0網(wǎng)站的核心技術(shù)也是以Ajax為中心,為了最高層次地提高顧客的體驗(yàn),必須使用Ajax技術(shù),本系統(tǒng)重要使用JQuery和Ext框架來(lái)實(shí)現(xiàn)Ajax技術(shù)。系統(tǒng)緩存普通緩存方略空間換取時(shí)間,緩存永遠(yuǎn)計(jì)算機(jī)設(shè)計(jì)的重中之重,從cpu到io,到處都能夠看到緩存的身影,web架構(gòu)設(shè)計(jì)重,緩存設(shè)計(jì)必不可少,設(shè)計(jì)web緩存和公司級(jí)緩存是非常不同的,公司級(jí)緩存偏重于邏輯,而web緩存,簡(jiǎn)樸快速為好。緩存的使用也會(huì)帶來(lái)的問題,它使程序的復(fù)雜度上升,由于數(shù)據(jù)散布在多個(gè)進(jìn)程,因此同時(shí)就是一種麻煩的問題,加上集群,復(fù)雜度會(huì)進(jìn)一步提高,在實(shí)際運(yùn)用中,采用如何的同時(shí)方略經(jīng)常需要和業(yè)務(wù)綁定。Cache的慣用的方略是:讓數(shù)據(jù)在內(nèi)存中,而不是在比較耗時(shí)的磁盤

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論