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

时间:2011-06-03 09:53:51

标签: gwt dependency-injection guice httpsession requestfactory

我的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了吗?

1 个答案:

答案 0 :(得分:1)

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