我知道这个话题被讨论过很多次,但我发现大部分信息都不是最新的。
我正在寻找有关如何将 GWT 与 Spring 框架集成的教程/示例。 我发现了许多 examplex(其中一些甚至可以工作),但仅限于较旧的库。我正在寻找具有最新库(或至少与最新库兼容)的解决方案。
还有许多示例使用 spring4gwt
库(用于创建“胶水”servlet)——还有其他方法吗?
我想使用 GWT + Spring + Hibernate + Maven
创建简单的示例应用程序。我首先创建了 Web Application Project
(来自 Eclipse)。我将项目转换为 Maven 项目。老实说,我被困在这里了。我可以创建简单的服务(+ 异步),但不知道如何配置适当的 servlet 以及如何更进一步。我在 spring4gwt 上找到了 relay 的示例,但我不想使用它(我认为自 2009 年以来没有新版本)。
如果有人能逐步解释集成,那就太好了。
很抱歉,如果这个是重复的,但经过长时间的搜索,我还没有找到适合我需要的明确解决方案。
最佳答案
你有很多方法可以与 Spring 集成,但我认为最好的选择是使用 RestyGWT Framework
由于您正在使用 HTTP
协议(protocol)和 JSON
格式来序列化对象,因此与 Spring Controllers
进行通信不会有问题RestyGWT
.
您还可以使用自己的 Controller 来响应 GWT RPC 请求
。您不使用 GWT Dispatcher
,而是使用 Spring MVC Request Dispatcher
并将 Controller 上的 URLS 映射到 GWT 客户端中的服务。
如果您使用 RESTY GWT API
,您可以只编写您的界面,使用 JAX-RS
注释映射方法,例如 @POST、@GET、 @DELETE、@PathParam
等
这是我使用 RestyGWT
在我的项目中所做的:
该项目由 2 个项目组成: 项目客户 项目服务器
客户端包含与GWT
和RestyGWT
相关的所有文件。
服务器包含来自使用 Spring
的后端实现的所有文件。
Maven
overlay 用于合并包编译阶段的 2 个项目,因此您以 GWT *js 文件和服务器文件的最终 war 结束。
要使用 RestyGWT
,您必须创建一个扩展 RestService
的接口(interface):
public interface MyRestService extends RestService{
@GET
@Path("/foo")
public void getFoo(MethodCallback<List<Foo>);
@POST
@Path("/foo")
public void saveFoo(Foo foo ,MethodCallback<MessageResponse>);
}
要使用您编写如下内容的服务:
MyRestService service = GWT.create(MyRestService.class);
你将有类似这样的东西来使用该服务:
service.getFoo(new MethodCallBack<List<Foo>>(){
public void onSucess(List<Foo> foos){
/* You will get foos, you dont have to worry about serialization, RESTYGWT does it for you */
}
public void onError() ...
});
你将有一个 Controller 来像这样响应这个请求:
@Controller
class myController{
@Autowired FooService svc;
@RequestMapping(value = "/foo", method = RequestMethod.GET, produces= "application/json")
public @ResponseBody List<Foo> getAllFoos(){
return svc.all();
}
@RequestMapping(value = "/foo", method = RequestMethod.POST, produces= "application/json", consumes="application/json")
public @ResponseBody MessageResponse save(@ResponseBody Foo foo){
svc.save(foo);
return new MessageResponse("Foo saved with sucess", 200);
}
关于java - 将 GWT 与 Spring 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121332/