常见的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)和代码生成器来为多种运行环境生成不同的适配器。