GWT不是一个小部件库,而是一个完整的框架,用于生成在客户端而不是服务器端运行的完整Web应用程序。基本区别在于spring(MVC模式)是以服务器为中心的,因此它连接到ddbb,执行业务逻辑并生成要发送到客户端的视图,因为GWT(MVP模式)在生成视图的浏览器中运行演示器,并且它只是连接到服务器以获取结果或对象(远程方法)。
也就是说,根据您的GWT应用程序,您可能需要服务器端的逻辑,以及其他元素,如ddbb,spring等。
关于何时选择GWT或任何其他框架的决定取决于您是否需要在浏览器中运行的丰富(类似桌面)的应用程序。
从逻辑上讲,您可以在任何复杂程度上混合GWT和spring,但合乎逻辑的方法是让spring负责数据模型及其业务逻辑,GWT负责其余的工作。
学习这种组合的最佳方法是探索使用Spring-roo生成的小项目。它可以创建一个完整的项目,其中包含所有设置的maven,spring,gwt,mvp和rf。只需安装 roo 1.2.2 并在 roo 控制台中运行以下命令集:
project --topLevelPackage com.project.contacts
persistence setup --provider ECLIPSELINK --database HYPERSONIC_PERSISTENT
database properties set --key database.url --value jdbc:hsqldb:/var/tmp/contacts.db
entity jpa --class com.project.contacts.domain.Contact --testAutomatically
field string name --notNull --sizeMin 1 --sizeMax 30 --class ~.domain.Contact
field string surname --notNull --sizeMin 1 --sizeMax 30 --class ~.domain.Contact
field string phone --notNull --sizeMin 1 --sizeMax 15 --class ~.domain.Contact
web gwt setup
web gwt all --proxyPackage ~.client.proxy --requestPackage ~.client.request
quit
然后执行
mvn gwt:run
我看到roo的主要问题是,当您修改模型时,它使用“aspectj”来更新托管分类,但是一旦您的项目设置好了,您就可以使用eclipse删除roo依赖项和aspectj文件。