Wicket сериализует многие вещи в сеанс как часть своего подхода к работе с кластеризацией.
Почти все в Wicket (в конце концов) распространяется на Component
, которое реализует IClusterable
, которое расширяет Serializable
. Поэтому такие компоненты, как панели, созданные в Wicket, должны быть сериализуемыми.
Обычной практикой является создание LoadableDetachableModel
классов, обертывающих ваши обычные бизнес-объекты логикой, которая хранит только ключ в сеансе и перезагружается с использованием этого ключа.
Если вы используете такие модели в качестве полей в своих компонентах вместо полных бизнес-объектов, вы будете значительно меньше загружать память сеанса.