阅读更多

5顶
1踩

编程语言

原创新闻 点评Java full-stack框架

2006-09-11 01:32 by 见习编辑 robbin 评论(1) 有8606人浏览
2005年ruby on rails横空出世般的流行刺激了Java开源框架整合的大趋势,ruby on rails这个号称“full-stack”的框架能做的我们都能做,它就是整合的更好,省略了配置文件,提供了快速代码生成器,暂且不论ruby on rails本身,但是诸多Java开发人员把目光从只做好一件事情上面挪到了“提供最方便的full-stack框架”上面,因此我们可以看到整个Java开源社区雨后春笋般的出现了一批又一批的full-stack框架,Java社区的开源软件哲学已经修改为:“要做最方便好用的full-stack框架”,那么就让我们来一一细数这些full-stack框架吧:

一、RIFE
最老牌的Java full-stack框架,作者Geert Bevin颇为不屑ruby on rails,和ruby on rails作者DHH有过对骂的战斗经验,8月份RIFE发布了1.5版本,提供了更多更方便的功能和更加简化的开发。RIFE功能相当完善,在Continuations方面颇有独到之处,但是RIFE独辟蹊径,整个解决方案不与现有任何流行开源框架相同,采用RIFE需要一些勇气。

二、Grails
最像ruby on rails的Java full-stack框架,Grails即Groovy on rails的意思,采用Java动态脚本语言groovy来写程序,底层实现采用Hibernate/Spring/SpringMVC/JSTL,即groovy的脚本语言在运行期动态生成Hibernate/Spring的Java编译好的字节码。8月份Grails发布了最新的0.2.1版本,在可用性的道路上又向前进了一步。

三、JBoss Seam
最正宗的Java full-stack框架。JBoss Seam整合了EJB3,Hibernate3,JSF,JBPM等框架,主持大局者是Hibernate作者Gavin King,Seam提供了一个非常简化的完整框架。说Seam最正宗是因为Seam采用的EJB3,JSF等技术都是Java EE5规范的官方技术,可谓系出名门。

四、Trails
最强调领域模型驱动的Java full-stack框架。Trails是Hibernate,Spring和Tapestry框架的整合版本,鉴于Tapestry是一个组件驱动的Web框架。Trails非常强调以领域模型来驱动快速开发。这是一个值得Tapestry爱好者使用的Java full-stack框架。

五、Able
最不甘寂寞的Java full-stack框架。这是8月份刚刚发表的新框架,Able的作者是前Webwork,现Struts2.0的主开发人员Patrick Lightbody。Pat同学也是一个对ruby on rails颇为不屑的人,曾经和RIFE作者Geert Bevin一唱一和的对战过DHH。Pat一边忙于开发Struts2.0,一边不甘寂寞的推出了Able框架,这是一个整合了Webwork,Spring和iBATIS的框架,但是对Webwork进行了大幅度简化。

这些成型的full-stack框架,加上最经典的Java full-stack框架……Hibernate/Spring/Struts组合(或者Hibernate/Spring/Webwork组合),一夜之间,Java开源世界的full-stack框架如千树万树梨花开,让我们这些Java开发人员挑花了眼,有人说,选择太多,即是Java开发人员之福,也是Java开发人员之痛,如何挑选适合自己需要的框架,则成为Java开发人员必备的能力之一。

5
1
评论 共 1 条 请登录后发表评论
1 楼 meetyou930 2008-04-10 14:17
那appfuse算什么呢?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • JD_tencent_scf:低调使用,不要fork!尽量第一时间同步更新脚本。防止失联请收藏gitee备份地址:https

    已修复云函数部署错误问题,请同步最新脚本 注意!原来使用zero205/JD仓库的用户可不用重新创建仓库,替换原脚本的代码即可同步本仓库 1.,点击右上角铅笔图标 2.复制全部代码替换原代码 3.点击右边绿色Start commit,点击Commit changes,手动运行一次此任务即可 使用教程(不要fork!觉得有用的可以点个star :smiling_face_with_smiling_eyes:) Github Action 运行 (响应lxk大佬要求,删除AC教程) 腾讯云函数部署。 部署【推荐】。 elecV2P 环境变量使用说明 1.以京东CK为例,登录elecV2P后台(默认地址:127.0.0.1:80) 2.选择JSMANAGE,key填CookiesJD,下面空白处即value值按下面的格式填写,多账号以此类推,自行删减。 [ { "userName": "jd_5bbxxx414", "cookie":

  • Python报错TypeError: ‘str‘ object is not callable 解读

    错误表示我们试图将一个字符串对象作为函数进行调用,但实际上字符串并不是一个可调用的函数。通过检查代码中的变量名和确保正确处理字符串,我们可以解决这个错误。遵循良好的编程实践,包括使用正确的数据类型和明确的变量命名,也有助于减少这类错误的发生。

  • Fastjson 学习记录

    Fastjson 是一个 Java 库,可用于将 Java 对象转换为其 JSON 表示形式。它还可用于将 JSON 字符串转换为等效的 Java 对象。Fastjson 可以处理任意 Java 对象,包括您没有源代码的预先存在的对象。Fastjson 目标在服务器端和安卓客户端提供最佳性能提供简单的 toJSONString() 和 parseObject() 方法将 Java 对象转换为 JSON,反之亦然允许将预先存在的不可修改对象与 JSON 相互转换广泛支持 Java 泛型。

  • Python报”TypeError: ‘module’ object is not callable “的原因以及解决办法

    要调用common里面的Trainer的trainer类,不要把py文件名称和类名写一样,不然就会误以为导入的收trainer模块而不是trainer类。由于在代码中使用了某个模块或库的名称作为函数名或方法名,从而发生了命名冲突。可以查看一下是否导入的是类。

  • HTML让文字在图片上显示

    Html让文字在图片上显示的集中方式: 第一种方式是image 作为背景图片,即:background:url("......."); 例如如下代码块: 添加文字...添加文字...添加文字... 第二种方式是将img块与文字块(文字块采用span标签显示)放在同一个div 中,然后设置他们之间的位置,例如如下代码块: 添加文字

  • 老司机珍藏的130个网站,没人的时候偷偷看!

    哈喽,各位读者老爷们,你们好,我是磊哥。今天给大家分享一些宝藏学习资源网站,当然大家可以留言评论自己发现的优秀资源地址搞学习找书籍冷知识 / 黑科技写代码资源搜索小工具导航页(工具集)看视频学设计搞文档找图片搞学习TED(最优质的演讲):https://www.ted.com/谷粉学术:https://gfsoso.99lb.net/scholar.html大学资源网:http://www.dxz...

  • GitHub访问不了,教你一招,不用开代理就可以访问

    GitHub访问不了,教你一招,不用开代理就可以访问

  • vue中路由模式

    vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。history是利用history中新增的两个API pushState()和 replaceState() 和一个事件onpopstate监听URL的变化history模式。在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。

  • win10计算机本地连接属性在哪里找,win10本地连接在哪?win10如何点击本地连接?...

    win10本地连接在哪?win10如何点击本地连接??win10系统与win7、winXP系统还是有点区别的,以至于不少网友会问win10本地连接在哪?win10如何点击本地连接?其实这两个故障很简单,但是如果你不熟悉的话,那就由小编来带你找到win10的本地连接吧,具体内容大家看以下文章。办法/步骤:1、开机后大家到达的是Metro界面,在该界面中打开“桌面”,进入桌面。2、到达桌面以后,是否是...

  • 用C语言编程,求下列分数序列的前20项之和:2/1+3/2+5/3+8/5+13/8+...

    /* 2020-5-6 19:15 作者:nyc 功能:求下列分数序列的前20项之和:2/1+3/2+5/3+8/5+13/8+... */ #include<stdio.h> int main(void) { int i, j; float top = 2, base = 1; float t, sum = 0; int times = 0; while(times+...

  • python3爬取图片

    对http://code.py40.com/42.html的爬虫代码进行改造,添加多线程,多进程下载,图片完整性判断,爬取百度图片分析 import multiprocessing import re import os import requests import time from multiprocessing import Process, Queue, cpu_count #使用P...

  • 定期清理服务器log的脚本

    删除文件命令:find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;例子:find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;说明 将/opt/soft/log/目录下所有30天前带”.log”的文件删除。具体参数说明如下: find:linux的查找命令,用户查找指定条件的

  • IP地址、子网掩码、有效子网数、有效主机数

    简要介绍IP地址、子网掩码、主机数、子网广播地址等关系。

  • ASP.NET 启动和运行机制

    <h1 id="aspnet-core">ASP.NET Core</h1> <ul> <li><a href="#aspnet-core%E7%9A%84%E8%BF%90%E8%A1%8C%E6%

  • Qt 5.15长期支持版本正式发布

    Qt5最后一个大版本更新。

  • 华为交换机ACL限制telnet登入以及安全防护配置

    给交换机的telnet ftp等配置白名单,限制非法登入。 启用Telnet服务 &lt;HUAWEI&gt; system-view [HUAWEI] sysname Telnet_Server [Nxera-YC] telnet server enable 配置VTY用户界面的最大个数。 [Nxera-YC] user-interface maximum-vty 15 配...

  • AD16中敷铜与导线连接的方法

    问题: AD16中敷铜与导线连接,在对敷铜进行Repour操作后,往往会把连接的导线与该敷铜区域分割开,而这并不是我们想要的效果; 如图所示: 解决办法: 选中敷铜区域,右键选择Properties…,在Net Options一栏中, 下拉选择框中,由Pour Over Same Net Polygons Only 改为Pour Over All Same Net Objects, ...

Global site tag (gtag.js) - Google Analytics