2

我有一个 GWT 应用程序,我想在其中添加 Spring,主要使用 Spring 和 JdbcTemplate 来处理我的数据库连接和 DAO 模型。我在使用 GWT 方面很有经验,但我才刚刚开始学习 Spring。

我不清楚的是我将在我的 GWT 应用程序中在哪里以及如何初始化 spring?我需要在我假设的某个地方初始化一个应用程序上下文。是否可以使用从前端的 onModuleLoad() 调用的 RPC 方法来执行此操作,但是如果我这样做,这些对象以后仍然可用吗?

基本上,我正在寻找有关如何以及在何处初始化后端 Spring 的基本概述,以便我可以开始开发和试验 Springs 组件。

谢谢你!

4

1 回答 1

1

几年前,我做了一个 Spring-GWT 集成,大致步骤如下:

  1. 在 web.xml 中配置一个 Spring ContextLoaderListener来启动 Spring 的根 WebApplicationContext。
  2. 创建一个基础 RemoteServiceServlet 类,该类具有从 ServletContext 获取 spring ApplicationContext 的方法。这可以使用以下方法来完成:WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);

  3. 使所有的 RPC servlet 扩展这个基类。

  4. 服务方法现在可以轻松获取 Spring 的 ApplicationContext。您可以在 spring 上下文中配置您的服务和数据层 bean,并以这种方式提供给您的 RPC servlet。

这种方法的唯一问题是 RPC servlet 不是它们自己而不是由 Spring 创建的,因此您不能注入它们的依赖项。

现在您可以使用第三方框架进行 spring-gwt 集成。例如,GWT Platform 的 Dispatch 模块允许您将动作处理程序配置为 spring bean。此类解决方案基本上采用框架提供的单个 RPC servlet。这个框架 RPC servlet 负责实例化您的服务器端处理程序并调用它们。如果您愿意学习这些额外的框架,它们可能是比我上面概述的更好的长期解决方案。

于 2011-08-18T20:27:51.377 回答