2013-03-05 4 views
0

Могу ли я настроить HttpSession в файле конфигурации хэша весны? Мне нужно создать Fectory HttpSession, чтобы я мог использовать все объекты сеанса для всех.Может ли объект HttpSession сконфигурирован в xml bean java spring

есть ли способ поместить объект под HttpSession с конфигурационным файлом xml ??

+3

Контейнер управляет сеансами http, поэтому весна не должна иметь никакой руки. –

ответ

0

Вы можете написать DelegatingHttpSessionListenerProxy аналогичным образом, что каркас DelegatingFilterProxy.

Например (очень простой и не тестируется)

public class DelegatingHttpSessionListenerProxy implements HttpSessionListener { 
    private HttpSessionListener delegate; 
    private WebApplicationContext wac; 

    @Override 
    public void sessionCreated(HttpSessionEvent event) { 
     if (wac == null) { 
      wac = findWebApplicationContext(event); 
     } 

     if (wac != null) { 
      delegate = wac.getBean(HttpSessionListener.class); 
      delegate.sessionCreated(event); 
     } 
    } 



    @Override 
    public void sessionDestroyed(HttpSessionEvent event) { 
     if (wac == null) { 
      wac = findWebApplicationContext(event); 
     } 

     if (wac != null) { 
      delegate = wac.getBean(HttpSessionListener.class); 
      delegate.sessionDestroyed(event); 
     } 
    } 

    protected WebApplicationContext findWebApplicationContext(HttpSessionEvent event) { 
     return WebApplicationContextUtils.getWebApplicationContext(event.getSession().getServletContext()); 
    } 

Затем зарегистрировать прокси в web.xml и управлять реальной реализации в контексте приложения.

Смежные вопросы