GWT是我进入Java进行Web开发的主要原因.哪个java框架最适合它,同时还可以最大限度地利用代码重用来完成表单验证,数据库访问,分页等普通任务?
谢谢.
春天是你应该使用的显而易见的.GWT有自己的RPC控制器框架,所以我无法真正想到你需要一个Web应用程序框架(如JSF).
JPA在几个方面是一个合理的选择,但它也存在问题.
首先,它可能是将JPA对象发送到客户端的问题.GWT(至少1.5)强制执行非常严格的目录结构,因此您必须将实体放在GWT源树下.除此之外,将JPA实体与客户端进行序列化(通常是JSON)可能存在问题.
JPA实体是相当严格的对象,几乎一对一映射到您的表.但是,这并不是您在表示层中使用数据的方式.Direct SQL将允许您选择您执行和不需要的数据,专门针对该页面进行定制.因此,JPA实体通常会有许多您不感兴趣的字段,不应该序列化(特别是一对多关系的集合).
现在,SQL的这一方面 - 将其定制到页面 - 通常被认为是实体的优势:您的代码最终不会被一次性使用的值对象所困扰.事实上,你仍然在gWT + JPA中得到同样的东西,但不是在持久层或业务层中,而是在表示层中最终得到它们.现在你可以称之为优势.我把它称为六个,另一个是六个.
我实际上认为Ibatis比GWA更适合GWT应用程序模型,因为您使用的是直接SQL,为您的目的定制的对象,这些对象可以从数据库一直使用到客户端.现在这个概念可能会让在Java领域非常普遍的分层狂热者感到恐惧,但是记住分层是一种手段,而不是目的本身.使用它,如果它可以帮助你.如果没有,请不要.
但是Spring在这个堆栈中是绝对必须的.
我还会推荐您为什么Google Web Toolkit不受欢迎?和使用ORM或纯SQL?.
如果您正在开发更多应用程序,如网站而不是基于页面的网站,我建议您查看开源框架Vaadin.这是服务器驱动的框架,它在客户端使用GWT来呈现前端,但也自动处理并保持服务器端的敏感业务逻辑.这增加了一些安全性,您不必担心客户端< - >服务器流量(如果您不想这样做),但可以专注于以您喜欢的任何方式实现服务器端逻辑.最重要的是你真的不需要编写任何其他Java代码.在框架中实现自己的新GWT组件也相当容易.
免责声明:是的,我为IT Mill开发Vaadin工作,但看看还没有伤害任何人,是吗?