Насколько я понимаю, вы можете связать все, что хотите, с областью сеанса, проблема в том, что в вашем примере Foo
кажется подклассом Servlet
, и сервлеты должны быть связаны в Singleton
сфера.
Чтобы решить эту проблему, просто свяжите ваше состояние (называемое Bar
) в области видимости сеанса и дайте вашему конструктору Foo
аргумент Provider<Bar>
(который будет заполнен Guice), чтобы вы могли получить доступ к состоянию области сеанса из сервлета Foo
синглтона.