常見的JAVA框架
模式,即pattern。其實就是解決某一類問題的方法論。你把解決某類問題的方法總結歸納到理論高度,那就是模式。
Alexander給出的經典定義是:每個模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。
通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重複相同的工作。
模式有不同的領域,建築領域有建築模式,軟件設計領域也有設計模式。當一個領域逐漸成熟的時候,自然會出現很多模式。
框架,即framework。其實就是某種應用的半成品,就是一組組件,供你選用完成你自己的系統。簡單說就是使用別人搭好的舞臺,你來做表演。
而且,框架一般是成熟的,不斷升級的軟件。
模式是一種指導,在一個良好的指導下,有助於你完成任務,有助於你做出一個優良的設計方案,達到事半功倍的效果。而且會得到解決問題的最佳辦法。
框架一般是成熟,穩健的,他可以處理系統很多細節問題,比如,事物處理,安全性,數據流控制等問題。
還有框架一般都經過很多人使用,所以結構很好,所以擴展性也很好,而且它是不斷升級的,你可以直接享受別人升級代碼帶來的好處。
框架一般處在低層應用平臺(如J2EE)和高層業務邏輯之間的中間層。
常見的JAVA框架有:
WAF:
全稱:WEB APPLICATION FRAMEWORK
主要應用方面:EJB層,(WEB層也有,但是比較弱)。
主要應用技術:EJB等
出處:http://java.sun.com/blueprints/code/index.html
簡述:這是SUN在展示J2EE平臺時所用的例子PetStore(寵物商店系統)裏面的框架。是SUN藍皮書例子程序中提出的應用框架。
它實現了 MVC和其他良好的設計模式。SUN的網站上有技術資料,最好下載PetStore來研究,WEBLOGIC裏自帶此係統,源碼在bea\weblogic700\samples\server\src\petstore。這是學習瞭解J2EE的首選框架。
免費。
Struts:
主要應用方面:WEB層。
主要應用技術:JSP,TagLib,JavaBean,XML等
出處:http://jakarta.apache.org/struts/index.html
簡述:這是APACHE的開源項目,目前應用很廣泛。基於MVC模式,結構很好,基於JSP。Jbuilder8裏已經集成了STRUTS1.02的製作。
免費。
簡述WAF+STRUTS結合的例子:WEB層用STRUTS,EJB層用WAF:
JSP(TagLib)――>ActionForm――>Action ――>
Event――>EJBAction――>EJB ――>DAO――>Database
JSP(TagLib) (forward)<――Action <――EventResponse<――
Turbine:
主要應用方面:WEB層。
主要應用技術:servlet等
出處:http://jakarta.apache.org/turbine/index.html
簡述:這是APACHE的開源項目。基於SERVLET。據說速度比較快,基於service(pluggable implementation可插拔的執行組件)的方式提供各種服務。
免費。
COCOON:
主要應用方面:WEB層。
主要應用技術:XML,XSP,servlet等
出處:http://cocoon.apache.org/2.0/
簡述:這是APACHE的一個開源項目。基於XML,基於XSP(通俗地說,XSP是在XML靜態文檔中加入Java程序段後形成的動態XML文檔)。
特點是可以與多種數據源交互,包括文件系統,數據庫,LDAP,XML資源庫,網絡數據源等。
免費。
ECHO:
主要應用方面:WEB層。
主要應用技術:servlet等
出處:http://www.nextapp.com/products/echo/
簡述:nextapp公司的一個開源項目。基於SERVLET。頁面可以做的很漂亮,結合echopoint,可以作出很多圖形效果(裏面用了 jfreechart包)。使用SWING的思想來作網頁,把HTML當作JAVA的類來做。但是大量使用Session,頁面分幀(Frame)很多, 系統資源消耗很大。
免費。
JATO:
全稱:SUN ONE Application Framework
主要應用方面:WEB層。
主要應用技術:JSP,TagLib,JavaBean等
簡述:這是SUN推出的一個商業性框架,一看名字就知道是結合SUN ONE的平臺推出的。
我下載了JATO2.0看了一下,感覺有些簡單,使用了JSP+TagLib+JavaBean。如他的DOC所說JATO是適合用在小的WEB應用裏。
免費。
TCF:
全稱:Thin-Client Framework
主要應用方面:JAVA GUI。
主要應用技術:JAVA application等
出處:http://www.alphaworks.ibm.com/tech/tcf
簡述:這是IBM出的一個框架。基於MVC模式,基於JAVAApplication。推薦一篇介紹文章:
http://www-900.ibm.com/developerWorks/cn/java/j-tcf1/index.shtml
收費:每個企業對象license:2000美元。
常見J2EE框架簡介
Spring是一個解決了許多在J2EE開發中常見的問題的強大框架。Spring提供了管理業務對象的一致方法並且鼓勵了注入對接口編程而不是對類編程的良好習慣。
Spring的架構基礎是基於使用JavaBean屬性的Inversion of Control容器。
然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作爲構建完關注所有架構層的完整解決方案方面是獨一無二的。
Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。
Spring的數據訪問架構還集成了Hibernate和其他O/R mapping解決方案。
Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。
Spring提供了一個用標準Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業事務--如果你需要--還能實現你自己的aspects。
這個框架足夠強大,使得應用程序能夠拋開EJB的複雜性,同時享受着和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器集成的強大而靈活的MVC Web框架。SpringIDE:Eclipse平臺下一個輔助開發插件。
Expresso Framework是一個基於開放標準的J2EE體系框架,可以讓開發者專注於應用程序邏輯。
它是一個可擴展JavaServer應用程序框架組件庫,用於創建基於開放標準的數據庫驅動的Web應用程序。
Expresso和ApacheJakarta Struts集成在一起,後者強調錶達和應用的配置併爲Expresso提供了一個功能強大的標籤庫。
這個框架是基於MVC設計模式。但其它一些MVC框架相比較,它的各部分體現出了高度的重用性,這樣將消除你不必要多餘的設計。
各任務的調度使用簡單的XML配置文件與模板使它們之間的邏輯完全分開。Dinamica沒有使用任何模板語言與jsp技術,
而是使用特殊的標記來代替真正的數據。
EJOSA,企業級開源架構,利用Enhydra和JOnAS 爲開發者提供一個易用的開發架構。實際上使用 EJOSA 就是使用Enhydra和JOnAS ,
因爲他們都是EJOSA的主要組件。EJOSA 作用是把一些組件都預先配置,並提供一個簡單明瞭的目錄結構,
目的是減輕開發的難度,讓開發者把重點放在業務處理上。
利用Jeenius框架可以很容易開發J2EE應用程序.Jeenius主要關注的構建是基於Web的應用程序.
JGuard這個項目是用Java開發的,提供一個基於jaas(java authentication and authorization security)的安全框架。
這個框架可以用於Web應用程序,可以解決簡單的訪問控制問題。
Jdon Framework(簡稱JF)是一套適合開發中小型J2EE應用系統的快速開發框架、也是一套Ioc/Aop框架、
更是一套符合當前國際水平的、面向組件開發的、國人擁有自主產權的中間件產品。中國第一個開源框架,國內先進的組件、構件工具。
Jdon框架是快速性和靈活性相結合的產物,體現了軟件開發既快又好的特點,對於小項目,使用Jdon框架可以開發出高質量可擴展的好的系統;
對於大項目,使用Jdon框架可以更快地開發出系統。
從技術原理上講,Jdon框架創新地綜合了域驅動開發框架(快)和Ioc/AOP構件管理(好)兩種新技術。
增刪改查和批量分頁查詢是每個系統的基礎功能,Jdon框架提供了這兩個基礎功能快速開發和可靠性能保證,
Jdon Framework = Ioc +AOP + CRUD + Cache。Jdon框架給你的J2EE應用系統帶來完整的高質量解決方案:
1. High-Availability(高可用性):在J2EE多層分離完全解耦的前提下,提供了數據增刪改查(crud)快速開發方式,
程序員需要編寫的crud代碼很少,表現層crud功能實現通常只需要配置就可以實現,No Code,例程。
2. Scalability(可伸縮性):使用本框架,可以開發出兩種系統:真正輕量的Web應用系統或Web+EJB應用系統;
無縫同時支持兩種服務架構:EJB Session Bean和POJO Service(Web應用),在不改變代碼的情況下,可以很方便地將一個Web系統升級到Web+EJB系統,
Jdon幫助你實現應用系統的可伸縮性。
3. Performance(良好的性能):Jdon框架內置Web緩存優化功能提高了大批量數據查詢速度。使用Jdon Framework開發J2EE應用系統,
幾乎無需考慮性能設計,也無需擔心內存泄漏或併發訪問,對Model數據通過緩存攔截器提升性能;對POJO無態服務使用對象池攔截器;
也實現了POJO的有態服務攔截器。
4. Transparency(透明性):JdonFramework的組件管理使用Ioc容器實現,所有組件包括框架組件和應用組件都是可配置,甚至可替換的。
它的Ioc/AOP實現簡單而強大。Ioc模式採用微容器PicoContainer實現,AOP功能是可分解的,通過緩存優化了動態代理的運行性能,
Jdon框架AOP可支持所有遵循繼承Aopalliance(如Spring)的攔截器。
5. Extendable(擴展性):它是可伸縮的、動態配置的,應用者可以將自己系統中的通用功能從具體系統中抽象出來,加入Jdon框架微容器中,
從而逐步形成自己的行業專業開發框架。
6.
realMethods是基於J2EE設計模式核心的應用框架,支持BMP,CMR/CMP 2.0,安全,日誌,連接池,Web服務等更多技術。
Bright Side Framework
1. 是基於HTTP 協議的Java/Swingclient
2. 是一個Struts client。它同時提供了一個諮詢論壇和在線 demo 應用 BookStore。
3.
OpenXava是一個讓使用XML與Java來開發J2EE商業應用程序變得簡單的框架。它目前支持IBMWebSphere應用服務器,但在開發過程中
可以使用JBoss。OpenXava1.1版本支持以下特點:
*. 支持WebSphere 5.0, 5.1和6.0, JBoss 3.2.x和4.0.x包括native EJB CMP2 EntityBeans
*. 它已經被用在許多商業項目上
*. 易用,使用它可以獲得高的開發效率
*. 靈活:可以在任意位置插入自己的功能
*. 基於商業化組件的概念
*. 完全地MVC
*. 使用有着成熟商業應用程序豐富特性的Web用戶接口
*. 可生成整個J2EE應用程序
*. 它應用到的開源項目有:Ant, JUnit,JasperReports,TL,XDocLet,Hibernate等
karma是一個輕量級並且易於使用的J2EE應用程序框架。當前它包含"COMMON" 與"JCR"這兩個組件。
"COMMON"組件是整個框架的核心並且基於MVC模式。這個組件易於測試(提供mock對象供測試),很少的XML描述,易於學習因爲它使用簡單的POJO動作(actions),攔截器(interceptors)和過濾器(filters) 還提供對AJAX的支持。
"JCR"組件是一個持久層框架但它沒有XML映射文件並能與其它web框架相結合如:SpringMVC框架。
Keel Framework是一個把專注於應用程序開發某方面(如:用戶接口,數據庫,消息,安全等等)的開源或商業的框架以插件的方式整合在一起的元框架。Keel圍繞三種核心模式進行構建:
1. COP模式(Component Oriented Programming:面向組件編程)這就爲應用程序提供了一個靈活的插件(plugging/unplugging)框架。
2. SOC模式(Separation of Concerns:關注分離)這允許用戶執行/控制/修改任何組件的功能而不會影響到其它組件。
3. IOC模式(Inversion of Control:反轉控制)。
Keel Framework當前已經集合了Avalon,Cocoon,Struts,Hibernate,Velocity,WebWork2,Axis,Maverick,JBoss,OpenJMS,Turbine,Lucene,BSF,Jelly, JFreeChart,Quartz等項目!這有一篇英文的簡介文章Keel Framework。
Seam是一個JavaEE 5框架。它通過把JSF與EJB3.0組件合併在一起,從而爲開發基於Web的企業應用程序提供一個最新的模式。Seam可以讓你把EJB組件直接綁定到JSF頁面。Seam還可幫助你把jBPM流程定義直接地集成到你的應用程序中。
CUBA: ComponentUnification Base是一個非常小而且易於使用的開發框架。用於設計基於組件(真正可複用、高效的服務端組件)的J2EE應用程序。利用此框架開發的應用程序可以作爲EJB2.1或EJB3.0應用運行,或AXISweb service或stand-alone J2SE程序。CUBA提供一個面向EJB3的組件模型、一個描述符(descriptor)和代碼生成器來爲多種運行環境生成不同的適配器。