2013-03-11 3 views
3

У меня есть фасоль весны с сеансом видимости. Этот компонент содержит ссылку на другой синглетный компонент, который не является сериализуемым. Каков наилучший подход, если я хочу сериализовать bean-компоненты с сессией?Весна: Сериализация обработанного сеансом бобов

Тот же вопрос уже задавал здесь: Spring session-scoped beans (controllers) and references to services, in terms of serialization

Принятого ответ таков:

[...] этот вопрос решен весной 3.0, предоставляя прокси-сервер несериализуемой фасоли , который получает экземпляр из текущего контекста приложения

Насколько я понимаю, динамик в связанном видео должен «просто работать». Но в моем случае это не так! Когда я пытаюсь сериализовать свой бонусный сеанс, я получаю NotSerializableException.

Как я могу решить эту проблему?

ответ

-2

Вы можете отметить одноплодное ссылочное поле transient. Затем проверьте How to execute method after deserialization и загрузите ссылку с ApplicationContext. Также, пожалуйста, укажите stacktrace.

P.S.

Не рекомендуется использовать сессионную пассивацию.

+1

Почему не рекомендуется использовать пассивацию сеанса? – Sebi

+0

Он просто медленный и использует много ввода-вывода. В настоящее время у нас много оперативной памяти - достаточно провести сеансы. –

+0

Я принял ваш ответ. Но вместо того, чтобы внедрять 'readObject' во все мои обработанные сеансом компоненты, я предпочитаю этот подход: http://justonjava.blogspot.hk/2011/02/session-passivation-and-spring-part-1.html – Sebi

1

Необходимо указать Весна для создания этого прокси. В XML на основе конфигурации, с помощью тега <aop:scoped-proxy/>, в режиме component-scan с помощью аннотаций:

@Scope(proxyMode = ScopedProxyMode.INTERFACES) 

на вашем классе контроллера.

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