EJB作為J2EE應用開發(fā)的服務器端核心部分,以Java企業(yè)編程救星的面貌出現(xiàn),堪稱Java開發(fā)問題的解藥,因此大受歡迎。它的復雜性一方面可以帶來超強的能力,但同時混亂和困惑也如影隨形。要想有效地利用EJB,有什么最佳途徑呢?本書討論了當今大家爭論得如火如荼的話題。本書作者找出并解釋了常見的EJB陷阱,并把這些陷阱提升為“反模式”。這些反模式可以幫助人們避免一些最重要的EJB問題,從持久存儲到性能領域都有所涉及。如果能清楚地知道哪些事情不該做,將能更深刻地感受到書中所述最佳實踐的意義所在。本書內容:■何時使用EJB以及何時不應使用EJB■管理會話狀態(tài)■實體bean的替代方法■性能調優(yōu)技術■XDoclet、Ant和JUnit最佳實踐■避免各類bean的陷阱,包括消息驅動bean、實體bean、會話bean。[前言]我曾經向與我有多年交情的最要好的朋友MikeOehrtman談起《BitterJava》中的冒險故事。實際上,書中起碼一半以上的故事中都少不了他的身影。我問他有沒有自己的故事可以拿出來,因為當時我們正在籌劃另一本Bitter系列的書。他說可以貢獻一些徒步旅行的故事。聽了這話,我不禁大笑起來,并告訴他如果只是到處走走還稱不上我所說的歷險。Mike反駁說,“相信我,你會喜歡這個故事的?!蹦菚r我們背著背包在阿拉斯加旅行。一天我們來到Denali國家公園,在與守園人的交談中,他告訴我們必須對旅行有所計劃。這個公園有很好的監(jiān)視系統(tǒng),所以即使一路上沒有看到其他的游客,守園人也能知道我們身在何處,誤差不會超過兩英里。我也算是個旅行老手了,所以看地圖是不成問題的。我對旅行做了安排,帶上地圖,乘上一輛公共汽車就出發(fā)了,開始了在偏僻地方的旅行。這輛車上坐滿了本地人,司機也是一個土生土長的阿拉斯加人。他的胡子可真長,甚至比坐在我旁邊的Beth還有過之而無不及。在旅途中我們看到了數(shù)不勝數(shù)的野生動物:麋鹿、駝鹿,甚至還有一些野羊。只要你能想到的動物,我們都看到了。轉過一個彎后,前面出現(xiàn)一條河,一頭熊矗立在前方,這可不是去年我們在Smoky山脈見過的那種小棕熊。這是一頭塊頭極大的灰熊。Beth拍了拍我的肩膀,示意我看車的另一邊,我看到到處都是大塊頭的熊。我以前也不是沒有見過大灰熊,但是一下子看到這么多確實是頭一遭。車在穿過熊群的時候慢了下來。這樣一來,我開始緊張了。我擔心這些熊會不會向我們發(fā)動攻擊,因為車廂里有的是食物。突然司機把車停了下來,我猜想是不是他也很害怕。不過,他只是坐著不動,這個時候我可真的開始冒汗了,懷疑是不是發(fā)動機出了故障?最后,司機轉過頭來向Beth和我問道:“不下嗎?”這時我才恍然大悟。原來我們要在這一站下車。不錯,此時此刻,我們必須置身于那么多的熊中間。我真的從來沒有這么膽戰(zhàn)心驚過。別人經常問我為什么能如此熱衷于這樣一種工作,在鍵盤前一坐就是十幾個小時可謂是家常便飯。他們免不了將寫作與污跡斑斑的鍵盤、滿是灰塵的顯示器和單調乏味的書桌關聯(lián)起來。我見過熊,而且見過許許多多的熊。如果你致力于Java開發(fā),我想你也一定遇到過許多你眼中的“熊”。首當其沖的要算是經濟了。我是從2000年開始的經濟衰退之初著手寫作的。我曾寫過《BitterJava》,并在這個領域一片混亂的時候開始從事顧問工作。作為Java行業(yè)根基的一些公司地位已經在動搖。Sun遇到了各種挑戰(zhàn),WebGain甚至銷聲匿跡。實力結構正在發(fā)生著變化。在寫這本書時,Oracle買下了TopLink,這打破了對象持久存儲市場的平衡局面。IBM則買下了Rational,這也極大地影響著它的發(fā)展。我的客戶、讀者和學生們還應當了解到另一只“熊”,這就是.NET。不論是對于客戶還是Microsoft產品,我認為.NET都是一只貨真價實的熊。我需要理解.NET在企業(yè)環(huán)境中可以做什么,它是否大到可以“吃掉”J2EE?它的“攻擊”是否會影響到我的生活?迄今為止這一切還沒有發(fā)生。不過,這只熊的存在卻是毋庸置疑的,它還在一路吞噬著,成長壯大著。PetStore基準測評(在第1章中會談到)使我切身感受到威脅的存在。一切都可能瞬息萬變,我們只需要確保一點,那就是絕不能小看像Microsoft這樣危險的競爭者。另一個讓我真切感受到的“熊”是EJB,這可真是一只又大又肥的“熊”。這個行業(yè)為EJB提供了充足的“營養(yǎng)”。IBM、Sun、Oracle、BEA還有其他眾多廠商都在大力扶持EJB。EJB是有“牙齒”的:我們最終肯定會看到一些商業(yè)EJB應用將大規(guī)模增長。而且EJB的精力也很旺盛:應用服務器市場的人氣仍然很旺。我曾經多次遠遠地觀望EJB,然后悄悄走開,擔心這只“熊”會轉向我,用它的利齒把我撕成碎片。EJB也確實可能會轉過來面向你。EJB項目經常會失敗,而且失敗的頻率著實讓人震驚。這種失敗的可能性也成為本書的一個談資。如果你仔細研讀過成功的模式和最佳實踐,我想你可能算是一個不錯的開發(fā)人員,但是如果你想更上一層樓,那么還必須了解技術的局限所在。勇敢地面對EJB,你一定會有所歷練。這個過程會增長你的技藝,打開你的思路,但同時受傷也是在所難免的。幸運的是,還有一種更好的學習方法。《BitterJava》使我確信,從他人的錯誤中學習不僅很有意義,而且會有很高的效率。按前面故事的說法,在本書中,我和合作者們最后都下了車,真實地面對這些熊。并不是說對遇到的所有項目都推薦EJB,絕非如此。我們只是指出EJB有其一席之地,而且在適當?shù)膱龊舷逻@種“動物”可能會有超群的能力。所以,勇敢地下車吧,探察最大的熊所藏身的陰暗洞穴。我們要對EJB的危險和力量都了然于胸。