哪个java web框架要学习?

Dan*_*Dan 11 java frameworks java-ee

我对学习java web开发框架很感兴趣,我正在寻找一些我应该学习的建议/建议(以及为什么).

理想情况下,我希望框架:

  1. 以MVC为基础.
  2. 有任何配置的最小化
  3. 有一个易于使用的ORM
  4. 有良好的会话管理
  5. 容易拾取

我熟悉pylons和django所以如果有一个类似于其中任何一个的java框架那么我会对它特别感兴趣.

谢谢.


结论:

首先,我要感谢那些花时间分享他们见解的人.在过去的几周里,我尝试了Spring MVC,Wicket和Stripes.最终,我选择Stripes是出于"Civil Disededient"描述的所有原因; 令人惊讶的是,他的一个陈述并不是双曲线.结合Stripes,我正在使用JPA/Hibernate.我担心的一个问题是Stripes社区与Struts2,JSF等相比似乎相对"小".虽然它可能相对较小,但社区非常方便,友好且乐于助人.

最后,虽然我没有尝试过Grails,但我确实对它进行了调查,看起来很有趣/很有希望.从我所看到的,Groovy语法看起来非常类似于python(因为我熟悉w/python,这会让我更容易学习)和Grails框架本身似乎是一个可与Rails,Django相媲美的RAD框架/挂架.我当然打算进一步研究和(在不久的将来)最终学习groovy/grails.

Bri*_*new 11

Grails可能就是你想要的.它运行在Groovy(一种更流行的基于JVM的语言)上.

它使用按惯例编码的方法,所以几乎没有配置.

它是基于MVC的并且有自己的ORM(称为GORM),但您可以插入Hibernate(可能是最流行的Java ORM).


rtp*_*son 7

祝好运.你提出的问题大致类似于"我想要一个用鸡肉做的烤烤牛肉三明治".Java中可用的框架在配置上往往很重,而且有点难以学习.

那就是说,这是我的建议:

  1. 基于MVC - Spring MVC或JSF,这两者都不是特别容易学习.我没有使用任何其他MVC Web框架(Wicket,Tapestry等),所以其他人可能不得不在这里权衡.
  2. 最小配置 - 最好的选择是Spring MVC with annotation.但这是Java - 配置地狱是游戏的名称.
  3. 易于使用ORM - 我不确定你在其他语言中习惯了什么,但在Java ORM中并没有被纳入MVC框架.对于易于使用的ORM而言,最好的选择是在Hibernate之上使用JPA,特别是如果你为MyEclipse支付60美元.MyEclipse中的JPA实现仅仅值得投资.它并不完美,比我见过的任何其他东西都要好.
  4. 有体面的会话管理 - 随你挑选.自90年代末以来,J2EE容器一直在管理比您可能需要的更多的会话.
  5. 易于取件 - 没有想到的东西.就像Java作为一种语言一样简单,与之相关的网络工具往往是粗暴的新手.学习JSP并远离JSF,因为它有一个古怪的生命周期,往往会隐藏你真正想知道的错误.

祝好运!

编辑:我从来没有使用过Grails,但是我必须同意Brian和Nathan说它看起来最适合你想要的东西.


小智 7

Stripes毫无疑问是我曾经乐于使用的最好和最简单的java框架.要满足您的每个要求:

以MVC为基础.

MVC在旁观者眼中是至关重要的 - 至少,这在很大程度上取决于您如何设计代码结构.但是,使用Stripes的MVC项目结构非常简单.

有任何配置的最小化

这是条纹闪耀的地方.要启动并运行,只需在web.xml中添加几行即可.其他一切都是自动连线的.Stripes的美妙之处在于,如果您愿意,一切都可以轻松覆盖.

有一个易于使用的ORM

Stripernate是框架的流行扩展,同样可以自动运行.

有良好的会话管理

就像场上的@Session注释一样简单.或者,如果需要,您可以在会话中保留整个ActionBean.Stripes内置了对Wizards的支持,因此您不必担心跨请求保留状态.

容易拾取

这是Stripes最强的套装.更不用说,Wiki的记录非常好.

此外,Stripes内置了对布局模板,本地化,AJAX和其他一些东西的支持.与一些需要数十个巨大的JAR(咳嗽...... Tapestry)的框架不同,整个框架是一个重量不到500 KB的JAR.