我可以知道之间有什么区别: -
这些技术/框架是否相互补充?或者它们是彼此的替代品(在我使用其中一个之后,我不需要使用另一个)?
谢谢.
这是半咆哮,半问题.
是否值得使用Grails?我正在尝试开发一个相对简单的数据库驱动的Web应用程序.我的专长是Java,所以Grails自然是个不错的选择.起初我想过使用Spring,JPA和Hibernate,但我之前已经使用过它,并且遇到了各种繁琐的配置和编码工作.Grails称自己为解决这个问题.
我对Grails最大的挫败感是所有不起作用的小事.我的意思是,它不会像人们直觉认为的那样起作用.边缘非常粗糙.我经常遇到问题.有时这是我缺乏Grails的理解 - 有时候我发现了合法的Grails错误.
一个主要问题是缺乏良好的Eclipse集成.有一个Groovy和Grails插件,但除了语法高亮之外它没有什么作用.从Java调用Groovy,反之亦然,配置非常痛苦.没有良好的IDE支持是一个主要的失败.
发生的事情是我坐下来尝试开发我的Web应用程序.在一天结束时,我意识到我花了大约85%的时间调试与Grails相关的问题.如果不是Eclipse的问题,那么它的预先加载,在视图中获取,一个一对多的关系,怪异的空文件的错误行为,怪异的财产/消气错误 -它只是不停去.这只是我今天遇到的问题的一个例子.我与Grails的最后一次坐下来产生了许多不同的问题.
我有时想知道它是否值得.我很好奇其他人是否经历过这种情况.是否有人真正使用Grails来高效地创建Web应用程序?是否还有其他我需要考虑的快速Web开发框架?
我正在考虑使用Java创建自己的网站,并试图决定使用什么框架.但是,快速搜索Java框架可以选择50多个!
我的网站只是为了我自己在开始时构建它的乐趣,但如果它变得流行,那么它具有一定的可扩展性,或者至少能够为此重新设计将是一件好事.
更受欢迎的框架之间的主要区别是什么?有没有一个显着优于其他人的情况?例如,高流量企业应用程序与低流量小型应用程序.我也想知道有些人比其他人更容易学习和使用.
是否有人对这些框架有一些经验并可以提出建议?绝对数量的选择是否可以作为早期警告,以尽可能避免基于Java的Web开发?
SpringSource(现在的VMWare)有两种非常相似的技术:Grails和Spring Roo.我一直在使用Grails,但我发现SpringSource正积极致力于该技术的竞争对手,这让我对Grails的未来感到担忧.
有谁知道这些技术是如何相关的,它们是否会被合并,或者其中一个会被抛弃?
此外,Grails和Roo之间是否存在重大技术差异?
我知道这是重复的,然而,Grails世界已经发生了很大的变化,因为这个问题是在一年多前提出的,就像Eclipse中的IDE支持一样,所以请不要盲目地关闭它.
我认为答案是肯定的,并且已经开始使用Grails 1.2.0进行一个新项目,并且已经调查了STS Eclipse Integration的Groovy/Grails位.
我认为这个问题值得重新审视一年后的Grails进化,当答案肯定是混合的.
因此,作为一名经验丰富的Java Web开发人员,我有这些问题,并希望我的假设受到挑战:
谢谢
编辑: 我正在学习,我有一些重要的抱怨与框架生活 - 而不是框架功能本身.我添加这些因为我认为它们应该是考虑因素并且基于我的经验和意见,并且可能帮助那些试图决定是否去学生的人.我也可能表现出我对框架缺乏经验,因此这些都不是批评的批评.我是一位经验丰富的开发人员,这是我发现的:
调试真的很难.事实上,它几乎是不可能的,特别是作为框架中的初学者,当你最需要可靠的调试器朋友时.我花了更多的时间来跟踪代码的某些部分中的语法错误问题,以及引用在堆栈中某处导致静默失败的域字段.
记录非常糟糕.你有两种模式,"没什么用处"和"过多无用的东西".单个页面请求后,我的调试日志为128Mb,并且不包含任何有关我的错误的信息.在我看来,整个日志问题需要在框架中重新考虑.
STS Eclipse IDE具有边际价值.除了语法高亮之外,它没什么用处.您无法调试代码,因此它是一个美化的编辑器.代码提示是不完整的,据我所知,根本没有GSP支持.它也是我桌面上最慢的Eclipse插件 - 大约2分钟即可启动.这是非常缓慢的.我已经恢复了文本编辑器(您会注意到所有在线教程视频也会这样做)和一些自定义语法hilighting.
我对性能有一些严重的担忧.有点太早说,但我已经发现自己因为休眠而调整了数据库.也许这是可以预料的,但我真的必须保持我的域模型简单的约定,以产生高性能的查询.
最后一个,您的逻辑域模型和您的物理数据库模型应该相同的约定不是一个明智的默认值,在现实世界中不太可能出现这种情况.我知道你可以将两者分开,但它会产生一定程度的复杂性,如果扩展惯例,我认为可以避免这种复杂性.没有足够的关于构图的文档以及您需要做些什么才能使它在实践中发挥作用.
Spring roo是新的框架,我发现它非常有趣.我已经在网络应用程序工作了3到3年了,如果每个人都没有足够的关于标记和服务器逻辑分离的纪律,那么总是发现JSP很难在各个团队中维护.我在最后的项目中使用过JackBe/BackBase,我喜欢用作视图的xml模板.这比JSP好得多.但我无法通过selenium为后备库自动化网络测试.
我肯定会在后端使用Spring MVC(-view),Hibernate.我发现Wicket是一个不错的选择.你和Spring一起使用过wicket,你有什么经历?
我们开始构建一个可能会看到大量流量的webapp.我们没有很多钱,所以我们希望降低硬件成本.更多或更少,我认为这意味着我们将尝试尽可能无状态(如检票方式暗示 - 具有可收藏的URL,等等,等等)
另一个问题是,我们要雇佣承包商(想想oDesk或者说是大量的工作) - 所以有找人才的问题.
我看过Tapestry并看到了很多API不稳定性(参见:你为什么停止使用Tapestry?)这让我不愿意使用它.
Seam和Wicket非常有状态 - 不是我关心的事情.
Grails看起来很有趣.我知道与纯Java相比,性能会受到影响,但它可能是值得的.
条纹看起来不错,但我找不到使用Stripes构建的网站示例
您建议使用哪种Java框架来提高性能和简单性?
我是一名Java SE开发人员,但我有丰富的Web背景(PHP,Perl/CGI等),现在我正在开始新项目.它将具有Web界面,意大利面条业务逻辑,关系数据库作为存储和与其他服务的连接.我是从零开始做的.
我的同事告诉我要使用弹簧,弹簧安全装置和支柱.我简要地看一下Java EE 6规范,发现它几乎涵盖了企业应用程序的所有方面.我问同事他们为什么需要spring和struts,但看起来他们只是因为熟悉它们并且不熟悉经典的Java EE 6堆栈而使用技术.
所以,我的问题是:Java EE 6有什么不好的地方?如果有JNDI查找,为什么我需要spring?为单元测试创建假的InitialContext需要一两天的时间.这就是全部:我坚持使用像春天这样的外部工具.如果Servlets规范中内置了安全性,为什么我需要spring-security?我可以使用web.xml将任何请求映射到任何servlet,不需要struts.xml.我可以使用servlet-filters而不是struts拦截器.有RMI,所以我不需要弹簧遥控器.等等..
如果有Java EE 6,为什么我要用所有那些花哨的东西来烦扰自己呢?
我真的很想找到Java EE 6还不够的情况.你有什么?
谢谢!
我曾经使用过JSF,Spring MVC和Struts,我认为我在这些框架上取得了很好的成绩.最近我听说很多与我合作的优秀开发人员正在学习Grails并在他们的项目中使用它.
Grails比其他框架有什么实际优势?除了我知道其他框架之外,还值得学习吗?什么是Grails的嗡嗡声,是因为Groovy?
注意:我在SO中进行了研究,我发现的唯一相关问题是这个,并没有提到Grails
我的问题基于以下问题:现在选择Java Web Framework? 一年后.
我的问题的原因是,一年内发生了很多事情,游戏框架已经成熟等等,我想知道今天的热门话题.今天框架的优点和缺点是什么?
java ×7
grails ×5
spring ×3
frameworks ×2
java-ee ×2
spring-roo ×2
groovy ×1
java-ee-6 ×1
spring-mvc ×1
stripes ×1
struts ×1
web-services ×1
wicket ×1