如何使用 Guice 在 GWT 的服务层 (DAO) 类中 @Inject HttpSession 对象?

发布于 2024-11-11 13:55:54 字数 693 浏览 4 评论 0原文

我的 GWT 应用程序中有如此肮脏的代码,我的服务层的某些类依赖于 HttpSession 对象。例如,在我的一个 DAO(这是一个 GWT-RPC 端点)中,我有这样的内容:

public class MyExampleDAO extends RemoteServiceServlet {
   public findItems() {
       // here I need to get the object session to retrieve the currently logged in user in order to query for all its items...
   }
}

问题是,我当前正在迁移代码以使用 RequestFactory。我的 DAO 将不再是 GWT-RPC 端点。所以不需要扩展 RemoteServiceServlet 那么...

你知道我如何获取/注入(可能使用 Guice)我对 HttpSession 对象的依赖,知道我的类不再扩展 RemoteServiceServlet 吗?

I have such a dirty code in my GWT app, some of the classes of my service layer depend on an HttpSession object. So for example, in one of my DAO (which was a GWT-RPC endpoint) I have something like this :

public class MyExampleDAO extends RemoteServiceServlet {
   public findItems() {
       // here I need to get the object session to retrieve the currently logged in user in order to query for all its items...
   }
}

The problem is that, I am currently migrating the code to use RequestFactory. My DAO will not be a GWT-RPC endpoint anymore. So no need to extend RemoteServiceServlet then ...

Do you know how I can get/inject (probably with Guice) my dependency to HttpSession Object, knowing that my class does not extend RemoteServiceServlet anymore?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

任性一次 2024-11-18 13:55:54

getThreadLocalRequest().getSession() 应该可以做到。 RequestFactoryServlet 有一个类似的(但静态的)getThreadLocalRequest() 方法,您可以从服务访问该方法。
否则,你可以让 Guice 注入一个 Provider,看看这些项目 https://github.com/mgenov/injecting-request-factoryhttps://github.com/etiennep/injected-requestfactory 查看使用 Guice 和 RequestFactory 的一些示例代码。

getThreadLocalRequest().getSession() should do it. RequestFactoryServlet has a similar (but static) getThreadLocalRequest() method that you can access from your service.
Otherwise, you can get Guice to inject a Provider<HttpSession>, have a look at these projects https://github.com/mgenov/injecting-request-factory and https://github.com/etiennep/injected-requestfactory for some sample code using Guice with RequestFactory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文