Java开源框架一览表
OpenSourceWebFrameworksinJava
- StrutsStrutsFrameworkistheimplementationofModel-View-Controller(MVC)designpatternfortheJSP.StrutsismaintainedasapartofApacheJakartaprojectandisopensource.StrutsFrameworkissuitedfortheapplicationofanysize.Latestversionofstrutscanbedownloadedfromhttp://jakarta.apache.org/.
TurbineTurbineisaservletbasedframeworkthatallowsexperiencedJavadeveloperstoquicklybuildwebapplications.Turbineallowsyoutousepersonalizethewebsitesandtouseuserloginstorestrictaccesstopartsofyourapplication.ExpressoFrameworkApowerful,openstandards-based,enterprise-strengthJ2EEarchitecturalframeworkprovidingalibraryofextensibleapplicationdevelopmentcomponentsforquicklybuildingweb-basedapplications.TapestryTapestryisapowerful,open-source,all-JavaframeworkforcreatingleadingedgewebapplicationsinJava.Tapestryreconceptualizeswebapplicationdevelopmentintermsofobjects,methodsandpropertiesinsteadofURLsandqueryparameters.TapestryisanalternativetoscriptingenvironmentssuchasJavaServerPagesorVelocity.Tapestrygoesfarfurther,providingacompleteframeworkforcreatingextremelydynamicapplicationswithminimalamountsofcoding.WebWorkWebWorkisaJavaweb-applicationdevelopmentframework.Itisbuiltspecificallywithdeveloperproductivityandcodesimplicityinmind.WebWorkisbuiltontopofXWork,whichprovidesagenericcommandpatternframeworkaswellasanInversionofControlcontainer.Inadditiontothesefeatures,WebWorkprovidesrobustsupportforbuildingreusableUItemplates,suchasformcontrols,UIthemes,internationalization,dynamicformparametermappingtoJavaBeans,robustclientandserversidevalidation,andmuchmore.ApacheCocoonApacheCocoonisawebdevelopmentframeworkbuiltaroundtheconceptsofseparationofconcernsandcomponent-basedwebdevelopment.Cocoonimplementstheseconceptsaroundthenotionof'componentpipelines',eachcomponentonthepipelinespecializingonaparticularoperation.ThismakesitpossibletouseaLego(tm)-likeapproachinbuildingwebsolutions,hookingtogethercomponentsintopipelineswithoutanyrequiredprogramming.Cocoonis"webglueforyourwebapplicationdevelopmentneeds".Itisagluethatkeepsconcernsseparateandallowsparallelevolutionofallaspectsofawebapplication,improvingdevelopmentpaceandreducingthechanceofconflicts.SpringSpringisalayeredJava/J2EEapplicationframework,basedoncodepublishedinExpertOne-on-OneJ2EEDesignandDevelopment.MaverikMaverickisaModel-View-Controller(aka"Model2")frameworkforwebpublishingusingJavaandJ2EE.ItisaminimalistframeworkwhichfocusessolelyonMVClogic,allowingyoutogeneratepresentationusingavarietyoftemplatingandtransformationtechnologies.InprincipleitcombinesthebestfeaturesofStruts,WebWork,andCocoon2.AnvilAnvilisaJavabasedserverenvironmentandobjectorientedprogramminglanguagewithtemplatingsupport,beingespeciallywell-suitedtoforwebapplications.JaffaJAFFAisaimedatSoftwaredevelopmentprojectsthatwanttofocustheirenergyonbuildingBusinessFunctionality,withoutspendingtimeondevelopingtheunderlyingarchitecture.TheJAFFAProjectintendstoprovidearealworldapplicationframework,andthenbuildacommunityofdevelopersaroundthat,whoallwantanopenstandardsbasedframeworkthattheycaninvestin,forbuildingtheirspecificapplicationson.JappleJappleisarapidapplicationdevelopmentenvironmentforbuildingwebapplicationsandservices.BuiltontheJavaTM2Platformandopen-standards,Jappleallowsyoutodevelopanddeploywebapplicationsfaster,easierandmoreefficientlythantraditionalmethods.JPublishJPublishisapowerfulwebpublishingsystemdesignedtoensureacleanseparationofdeveloperroles.JPublishincludessupportformultipletemplatingengines,includingJakartaApache'sVelocity,FreeMarkerandWebMacro.JPublishsupportsnumerousscriptinglanguagesincludingPython,BeanShell,andJavaScript.JPublishismodularandprovidesforeasyextensibility.JucasJucasisaweb-frameworkwhichbringstogetherthepullMVCconceptwithcomponentorientateddesignGUIprogramming.
Struts(likeotherModelIIframeworks)havebroughttheseparationbetweenViewandModelandControlertothewebprogramming.OntheotherhandrecentframeworkslikeJavaServerFaces(JSF)orASP.NETtrytoprovidetheadvantagesofobject(component)orientatedGUI-Designknownfrom'fat-client'apislikeSwingorVisualBasic(statefulobjects,event-mechanismus).
Jucascombinesbothapproaches.Statefulcomponents(JavaBeans)areusedtorepresentthemodelandthecontrollerandtemplatesusethiscomponentstorendertheview.
MyFacesJavaServer(tm)FacesisanewandupcomingwebapplicationframeworkthataccomplishestheMVCparadigm.Itiscomparabletothewell-knownStrutsFrameworkbuthasfeaturesandconceptsthatarebeyondthoseofStruts.LookatSun'sJavaServer(tm)PagetolearnmoreabouttheJavaSpecificationRequest127andtodownloadthespecification.TheyalsoprovideausefulTutorialthere.
WebOnSwingWebOnSwingisarevolutionarymultipleenvironmentapplicationframeworkthatallowsyoutocreatewebapplicationsinthesamewayyoudevelopeadesktopone.YoudontneedtouseJSPfiles,specialtags,XMLfiles,requests,posts,etc.EverythingisJavaandpureHTMLfilesthatcomesdirectlyfromthegraphicdesigner.ChrysalisChrysalisisaJavawebdevelopmentframework.IthasadifferentfocusfrommostModel-View-Controller(MVC)webframeworks.ChrysaliscontrollersresemblenormalJavaclasseswithmultiplemethods.ClientrequestURLsaremappedtoeachcontrollermethod.ThetypicalMVCframeworkisfoundedononebasicinsight:thatJavaservletscanbetreatedasaneventhandlerforthesubmitbuttonofHTMLforms.ThismakesservletsanalogoustothecontrollerintheMVCpattern,equivalenttotheListenerclassesusedinJavaGUIs.Fromthisinsight,therestofthepatternfollowseasily(seeStrutsforthemostpopularimplementationofthisapproach).VRaptorVRaptorisaModel-View-ControllerwebapplicationframeworkthattriestoimplementthebestfeaturesfromthefollowingstateofartMVCframeworks:WebWork2,SpringFrameworkandStruts.ItishighlyfocusedontheInversionofControlprinciples,usingtheConstructorInjectionphilosophybroughtbythePicoContainer.SwingletsProgramyourJSP&ServletslikeyouprogramyourSwingcomponents.SwingletsisaserversidecomponentlibrarythatusesanidenticaldesigntoSwing.SwingletshaslookandfeelsforHTML,JavaScriptandWML.TheComponents,Models,Renderers,andLookAndFeelsareverysimilar.IthasSwingeventhandlingtoo.InfactSwingletsactuallyusestheSwingmodels(e.g.TableModel).ThismeansyoucantakeyourexistingmodelsandstartworkingwithServletsstraightaway.It'sjustaboutasclosetoastandardasyoucangetwithoutitactuallycomingfromSunthemselves.MillstoneMillstoneisauserinterfacelibraryfordevelopmentofnetworkedJavaapplications.Itprovidesaterminalindependentcomponentmodelthatcanbeadaptedtodifferentterminaltypesanduserinterfacethemes.ThedevelopmentmodelofMillstoneiscloselyrelatedtotraditionalclientsideUIdevelopment:ithasacontinuousapplicationlifecycleandanextensiveeventmodel.TheMillstonelibraryalsoprovidesaninterfacefordirectlyconnectingUIcomponentstobusinesslogicanddatastorage.WicketWicketisaJavawebapplicationframeworkthattakessimplicity,separationofconcernsandeaseofdevelopmenttoawholenewlevel.Wicketpagescanbemockedup,previewedandlaterrevisedusingstandardWYSIWYGHTMLdesigntools.DynamiccontentprocessingandformhandlingisallhandledinJavacodeusingaSwing-likecomponentmodelbackedbyPOJOdatabeansthatcaneasilybepersistedwithHibernate.原文请访问:http://www.roseindia.net/enterprise/webframeworks.shtml