Spring誕生前夕的世界
當(dāng)時的行業(yè)需求
- 企業(yè)規(guī)模信息化規(guī)模擴(kuò)大照藻,單機(jī)在性能、可靠性上都難以滿足彼水,出現(xiàn)分布式崔拥、雙機(jī)熱備(集群)、分布式事務(wù)凤覆、資源池化等需求链瓦;
各大廠商瓜分市場
- 各技術(shù)協(xié)會為了行業(yè)的健康發(fā)展,積極推進(jìn)行業(yè)的規(guī)范化盯桦。各大廠商為了占領(lǐng)市場慈俯,對規(guī)范制定也是大力支持,所以一起為J2EE定制了很多的規(guī)范:Servlet拥峦、JSP贴膘、JMS、JTA略号、JNDI刑峡、JDBC、RMI玄柠、JavaMail突梦、XML、EJB等羽利;
- 對于開發(fā)者來說宫患,開發(fā)一個企業(yè)級應(yīng)用需要實(shí)現(xiàn)規(guī)范要求的接口或者遵守固定的使用方式,才能具備相應(yīng)的能力这弧;
- 各大廠商在應(yīng)用服務(wù)器娃闲、中間件中為各個規(guī)范提供了相應(yīng)的容器、集成等管理能力当宴;出現(xiàn)了weblogic畜吊、websphere泽疆、Jboss等應(yīng)用服務(wù)器户矢,Oracle、DB2等數(shù)據(jù)庫殉疼。
EJB被廣泛應(yīng)用
- EJB作為一種理念被提出時梯浪,就被各大廠商寄予了厚望。EJB的理念認(rèn)為瓢娜,企業(yè)軟件的核心是Service層挂洛,這一層代表了一個企業(yè)的核心處理邏輯,基于Service層的web層只是和前臺界面交互的一層Facade眠砾,而持久層只是實(shí)現(xiàn)數(shù)據(jù)的結(jié)構(gòu)化存儲虏劲;
- 但是EJB的實(shí)現(xiàn)非常復(fù)雜,在業(yè)務(wù)代碼之外,需要生成大量的描述性代碼柒巫。這給開發(fā)效率帶來了很大的問題励堡;
- EJB的測試非常麻煩,需要部署到容器中才能測試堡掏;
集成各種框架很復(fù)雜
- 除了EJB這種復(fù)雜的技術(shù)应结,其他方面也需要直接使用JSP、JDBC等對使用并不友好的API泉唁。所以大家為了便于使用鹅龄,一般都會各自進(jìn)行一定的封裝,行業(yè)內(nèi)也逐漸出現(xiàn)一些解決某一方面的通用解決方案亭畜,比如web層的Struts扮休、webwork,持久層的ibatis拴鸵、hibernate等肛炮,但是這些框架之間的集成往往并不容易。
Johnson對EJB的看法
ejb
Johnson對J2EE的看法
- J2EE的前進(jìn)方向應(yīng)該有開源軟件來引導(dǎo)宝踪;有Sun這樣的商業(yè)公司來主導(dǎo)J2EE規(guī)范的制定侨糟,摻雜太多利益的糾葛,造成規(guī)范脫離了實(shí)際需要瘩燥;
- 標(biāo)準(zhǔn)化的規(guī)范造成了應(yīng)用對各大廠商的依賴秕重,這嚴(yán)重的抑制了創(chuàng)新;