亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

對J2EE項目的一些體會

2019-11-18 15:37:09
字體:
來源:轉載
供稿:網友

  1 、認真考慮是否真要使用J2EE
   這個很重要,非常重要。J2EE涵蓋的內容大而全,但很多不一定就是具體實際項目需要的。象EJB級的權限控制,假如你的表現層(大部分項目就是Web server)和應用服務器不存在信任問題,那么基本上就不用考慮。
又比如伸縮性,假如同時在線最多不超過100個,就沒什么用處。針對項目的實際情況選擇效費比最合適的解決方案,而不要為了應用先進技術而應用先進技術。

  2、選擇合適的分布模型

   提起分布,很多人可能都會有這樣的設想:server A處理認證,server B處理訂單,server C處理倉儲;假如B的負載太大,那么再細分一下:錄入、修改部分的EJB部署在server D,統計、分析部分的部署在server E,等等。其實沒有必要,我的體會是:除非業務必須(如分支機構統一通過總部的app server來進行權限驗證),否則最好將所有的應用全部放在一個app server中,能在一個進程空間內更好(使用home interface),然后進行平行的分布——即集群中的所有app server功能上都是等價的。相比前一種垂直(或者網狀)分布,平行分布的可靠性、容錯能力、伸縮能力都要更好,同時減少了部署、治理負擔。最重要的是,減少了因為業務邏輯層內部跨進程調用引起的開銷,提高了整體性能。然而,假如a、一些業務邏輯必須相互獨立部署、治理,b、負載較為集中地分布在若干個EJB中,那么,垂直分布還是必不可少的。

  3、為Entity bean選擇合適的數據存儲方案
   首先盡量使用CMP治理數據存儲,尤其是簡單的,大部分業務操作都是插入刪除修改的實體,不然光insert update就夠你忙的了,更不用說數據庫移植問題。其次對于簡單的一對一、一對多關系,假如你的app server沒有實現EJB2.0規范,可以考慮使用O/R映射工具幫助開發,象Cocobase, EJB creator等等,可以提高不少效率。對于復雜的對象存儲,沒辦法,老老實實寫代碼吧……

  4、慎重考慮EJBHome.findByXXX(),listXXX()的實現
   設想對一個百萬記錄級的表進行檢索,結果集很可能是上萬條、十萬條,這本身就是一個耗費資源的過程;同時對于檢索到的每一個記錄還要做一次findByPRimarykey,這么多次跨進程調用,開銷可想而知。為什么有的人覺得用J2EE實現的程序奇慢無比,缺乏仔細的設計就是主要原因之一。

  5、使用抽象數據結構傳遞數據
   例如,listOrder()返回Collection而不是Vector,insertItems()也是以Collection為參數而不是LinkedList。當然這個實際上與J2EE本身關系不是很大。

  6、對Entity bean盡量使用Map來存儲、傳遞屬性
   對業務流程沒有很大影響的屬性,象身高體重出生年月之類,最好用一個HashMap來存放,而不要直接用成員變量+getXXX/setXXX。對于ejbCreate也是一樣,十幾個參數的create方法,實現、維護都是代價高昂的。需知實際應用中這些字段的增減、屬性變化是家常便飯,光維護get/set方法可能就會讓你吐血了。但是,對于對業務流程有關建意義的字段,例如員工的入職日期決定其休假天數的計算,那么還是作為成員變量的好。
   推薦一個關于EJB設計模式的好地方:
   http://www.theserverside.com/resources/patterns_review.jsp


  7、分清Entity bean和session bean的職責

   Entity bean是實體的對象形式,它的職責應限于自身的存儲,以及對外部提供訪問內部數據的接口(所以我認為它本質上應該屬于數據存儲層)。Entity bean應該盡量避免自己實現有其他Entity bean參與的業務邏輯。例如,訂單的貨款收到以后,將訂單的狀態由“提交”變為“生效”,同時將訂單的金額按照某種規則折算成該客戶的積分。這個業務流程有三個對象參與:客戶,訂單和積分折算策略。那么,實現流程的方法應該在哪個對象中呢,是客戶還是訂單?都不合適,假如在訂單中,那么訂單對象需要了解客戶積分屬性的接口及積分折算的接口;假如在客戶對象中也是一樣。耦合度增強就意味著維護難度增大,假如用戶對象的積分接口或者折算策略的接口改變了,那么改變就會蔓延到訂單對象中。合適的方式是用一個OrderProcessor來治理訂單處理流程,以stateless session bean來實現。OrderProcessor了解所有參與訂單處理的對象的接口,它集中治理對訂單的處理流程,假如流程發生變化,訂單生效之前要通過審批,這種變化不會影響到參與流程的實體對象;同樣,參與流程的某個對象接口發生了變化,也不會影響到其他對象。

  8、重視表現層的復用

   企業軟件的界面,大部分都可以用一些基本元素如grid, tree, page control, form等組合而來。假如能合理采用一些技術對這些元素進行復用,不但有利于降低開發成本,而且也便于統一維護界面風格。對J2EE的表現層,也就是JSP/servlet,可以采用的復用技術不多,基本上就是文件包含、創建類庫、Tag lig(本質上還是創建類庫,使用起來我覺得還不一定有直接方法調用來的方便)等等。還有一些不同于JSP/servlet的表現層框架,如Apache Velocity、Enhydra、WebMacro等等,也可以參考。雖然java還沒有一個規范的、統一的Html界面元素類庫,但自己項目內部統一使用某種方案還是可能的。

   另外,xml+XSLT也是一種方案。將數據直接用XML形式表現出來,繞過Entity bean,然后再用XSLT模版轉化成最終界面。XML與XSLT之間屬于模式匹配式的松散耦合,可以避免強類型語言方法調用帶來的參數類型、個數、順序限制,做到徹底地數據與界面分離;同時XML形式的數據集在app server中可以按照合適的方案進行緩沖,避免頻繁訪問數據庫,抵銷XSLT轉換引入的性能負擔。同時XML和XSLT是業界廣泛采納的標準,假如今后采用不同的體系結構(如從J2EE移植到.Net或者相反),表現層的XSLT形式的界面可以重用。JSP或asp就沒有這種可能。問題在于首先要治理關系型數據到層次型XML數據的映射,其次假如沒有一個好的工具,創建、維護XSLT也是很費時費力的事情。我現在的項目正在朝這個方向努力,希望能做一個象Delphi那樣好用的,基于XSLT的HTML界面控件開發、治理、使用環境。

  9、充分估計開發的艱辛程度

   這個,一言難盡。總之實際需求的變化往往是超乎我們想象的,要在需求分析結束的時候就清楚劃分模塊接口幾乎做不到,計劃不如變化。而J2EE體系架構是重量級的框架,雖然app server實現了很多功能,但同時也要求你開發的時候付出額外的代價。對于J2EE項目的資金、時間、人手等資源估計,寧可多不可少,千萬不要簡單認為用了一個weblogic就萬事大吉了。進入討論組討論。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
伦伦影院午夜日韩欧美限制| 日日骚av一区| 亚洲精品美女免费| 一区二区三区国产在线观看| 国产成人精品免高潮在线观看| 亚洲电影免费观看高清完整版| 中文字幕亚洲情99在线| 久久韩剧网电视剧| 成人黄色在线播放| 久久久免费精品视频| 91影视免费在线观看| 播播国产欧美激情| 国产精品第1页| 亚州欧美日韩中文视频| 亚洲精品一区二区三区不| 成人免费观看49www在线观看| 欧美日韩亚洲一区二区三区| 亚洲精品电影网在线观看| 日韩精品免费一线在线观看| 欧美猛交免费看| 久久国产一区二区三区| 91欧美精品午夜性色福利在线| 欧美日韩亚洲精品内裤| 最新的欧美黄色| 亚洲精品视频网上网址在线观看| 国产激情视频一区| 操91在线视频| 91精品国产91久久久久久| 成人性生交大片免费看视频直播| 美女视频黄免费的亚洲男人天堂| 主播福利视频一区| 久久99热精品这里久久精品| 91av在线网站| 国产一区二区三区中文| 欧洲亚洲在线视频| 国产精品av在线| 精品视频久久久久久| 欧美裸体xxxx极品少妇| 色噜噜国产精品视频一区二区| 国产成人高清激情视频在线观看| 91美女片黄在线观看游戏| 亚洲精品理论电影| 亚洲激情视频在线播放| 亚洲欧美国内爽妇网| 综合136福利视频在线| 国产偷国产偷亚洲清高网站| 欧美激情精品久久久久久| 国产精品999999| 亚洲在线免费观看| 亚洲一区二区三区毛片| 国产视频亚洲精品| 国产欧美日韩精品丝袜高跟鞋| 国内伊人久久久久久网站视频| 国产精品入口免费视频一| 国产亚洲日本欧美韩国| 午夜免费日韩视频| 亚洲欧美激情四射在线日| 自拍亚洲一区欧美另类| 国产精品大陆在线观看| 欧美亚洲成人网| 日韩av观看网址| 日韩经典中文字幕在线观看| 久久久爽爽爽美女图片| 91久热免费在线视频| 久久国产天堂福利天堂| 国产精品电影观看| 亚洲欧美在线x视频| 成人亚洲欧美一区二区三区| 国产有码一区二区| 26uuu另类亚洲欧美日本一| 久久天堂电影网| 7777精品久久久久久| 亚洲国产精品成人av| 国产精品91免费在线| 亚洲色在线视频| 亚洲精品福利免费在线观看| 成人欧美一区二区三区在线| 亚洲国产精品专区久久| 久热精品视频在线观看一区| 狠狠色噜噜狠狠狠狠97| 久久福利视频导航| 538国产精品视频一区二区| 久久成年人视频| 福利视频一区二区| 日韩视频免费大全中文字幕| 欧美日韩国产一区二区| 国产一区二区三区在线播放免费观看| 日本精品一区二区三区在线播放视频| 欧美一区二区影院| 精品一区二区三区电影| 久久久久一本一区二区青青蜜月| 色婷婷亚洲mv天堂mv在影片| 在线看福利67194| 韩剧1988免费观看全集| 成人在线一区二区| 在线日韩第一页| 精品视频在线播放免| 97精品视频在线播放| 国自产精品手机在线观看视频| 久久精品青青大伊人av| 成人亚洲综合色就1024| 中文字幕亚洲在线| 2020久久国产精品| 亚洲人永久免费| 亚洲精品mp4| 亚洲自拍中文字幕| 亚洲成人在线网| 国产乱人伦真实精品视频| 日本最新高清不卡中文字幕| 国内揄拍国内精品| 最近2019年手机中文字幕| 亚洲精品成人av| 亚洲黄色av女优在线观看| 丝袜亚洲另类欧美重口| 法国裸体一区二区| 久久亚洲精品网站| 91av在线免费观看| 欧美一区二区三区四区在线| 在线亚洲午夜片av大片| 欧美韩国理论所午夜片917电影| 91国产视频在线播放| 97精品欧美一区二区三区| 亚洲天堂av在线免费观看| 亚洲精品日韩激情在线电影| 久久国产精品首页| 亚洲精品国精品久久99热一| 国内精品视频久久| 国产精品黄页免费高清在线观看| 亚洲综合一区二区不卡| 亚洲欧美日韩精品久久| 久久久女人电视剧免费播放下载| 精品国内自产拍在线观看| 色偷偷噜噜噜亚洲男人的天堂| 国产成人一区二区三区电影| 国产精品福利在线观看网址| 欧美极品少妇xxxxⅹ裸体艺术| 日本亚洲欧洲色α| 成人精品久久一区二区三区| 亚洲在线免费视频| 亚洲2020天天堂在线观看| 国产精品人成电影在线观看| 欧美在线激情视频| 欧美久久久精品| 97久久精品视频| 色妞久久福利网| 庆余年2免费日韩剧观看大牛| 这里精品视频免费| 在线观看国产精品淫| 日本精品在线视频| 欧美亚洲另类制服自拍| 青青青国产精品一区二区| 亚洲少妇激情视频| 日韩欧美成人精品| 亚洲精品www久久久久久广东| 在线观看国产精品淫| 成人午夜在线视频一区| 少妇精69xxtheporn| 国产欧亚日韩视频| 久久人91精品久久久久久不卡| 亚洲最新在线视频| 亚洲图片欧美午夜| 97精品国产97久久久久久免费| 亚洲午夜av久久乱码| 国产精品亚洲欧美导航|