Подтвердить что ты не робот

Почему Java Beans должен быть сериализуемым?

Нужно ли, чтобы Java Bean реализовал интерфейс Serializable?

4b9b3361

Ответ 1

Это одна из "типичных" функций, описанных в спецификации Javabeans.

Здесь выдержка из главы 2.1 Что такое bean?

Индивидуальная Java Beans будет отличаться в функциональности, которую они поддерживают, но типичные объединяющие функции которые отличают Java Bean:

  • Поддержка "интроспекции", чтобы инструмент строителя мог анализировать, как работает Bean
  • Поддержка "настройки", так что при использовании построителя приложений пользователь может настроить внешний вид и поведение bean.
  • Поддержка "событий" как простой метафоры связи, чем может использоваться для подключения up beans.
  • Поддержка "свойств", как для настройки, так и для использования в программах.
  • Поддержка сохранения, так что Bean можно настроить в построителе приложений и затем настройте свое настроенное состояние и перезагрузите его позже.

И вот выдержка из главы 5.5 Резюме стойкости:

Все Beans должны поддерживать либо сериализацию, либо эквализацию.

На практике это явно не необходимо для его функционирования. В целом он просто отлично работает без реализации Serializable. Это, однако, полезно, когда вы хотите сохранить их "обычным" на жестком диске или отправить "обычную" по сети. Например, когда это сеанс с областью Bean, который должен быть сохранен в сеансе HTTP, и сервер был запутан, чтобы продолжать и возобновлять сеансы HTTP во время выключения/перезапуска. Во всяком случае, всякий раз, когда вы сталкиваетесь с NotSerializableException с полным именем класса Bean в сообщении, тогда достаточно знака, чтобы он реализовал Serializable.

Ответ 2

Да.

По определению - Java bean - это то, что является сериализуемым POJO (простым старым Java-объектом), с конструктором без аргументов и частными полями с getters/seters.