Как @Inject объект HttpSession в классе сервисного уровня (DAO) в GWT, используя Guice? - PullRequest
1 голос
/ 03 июня 2011

У меня такой грязный код в моем приложении 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 Object, зная, что мой класс не расширяет RemoteServiceServletбольше

1 Ответ

1 голос
/ 03 июня 2011

getThreadLocalRequest().getSession() должен это сделать. У RequestFactoryServlet есть похожий (но статический) метод getThreadLocalRequest(), к которому вы можете получить доступ через службу. В противном случае вы можете заставить Guice ввести Provider<HttpSession>, взглянуть на эти проекты https://github.com/mgenov/injecting-request-factory и https://github.com/etiennep/injected-requestfactory для некоторого примера кода, используя Guice с RequestFactory.

...