Почему класс бобов должен быть сериализован

1

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

Я видел классы bean в сообщениях о Spring MVC, и они всегда объявляются сериализованными и имеют private static final long serialVersionUID. Зачем?

  • 0
    Я отредактировал ваш пост для грамматики, но, поскольку я не мог полностью понять его, пожалуйста, проверьте, что смысл поста, который я отредактировал, по-прежнему совпадает с вашим первоначальным замыслом.
  • 1
    Ваша предпосылка просто ложна, поэтому вопрос не подлежит обсуждению.
Показать ещё 4 комментария
Теги:
spring
spring-mvc
javabeans

2 ответа

2
Лучший ответ

Одна из веских причин в отношении сервлетов заключается в том, что если вы помещаете сериализуемые компоненты в ваш сеанс веб-сервера, ваш веб-сервер может сериализовать их на диск, если он отключится, а затем десериализовать их обратно в память при запуске. Таким образом, пользователи не потеряют свои сеансы/логины при возврате сервера.

Если в сеансе есть какие-либо несериализуемые компоненты, tomcat не сможет сериализовать сеансы на диск.

Я считаю, что это также необходимо, если вы хотите синхронизировать сеансы между несколькими серверами в кластере.

2

В соответствии с спецификацией JavaBean компоненты bean должны быть сериализованы. Фактически любой Java-класс может быть компонентом, если он обладает следующими свойствами:

  1. Не имеет конструктора аргументов
  2. Есть ли у некоторых частных членов и для доступа к ним/управления им есть некоторые геттер/сеттер
  3. Реализует serializable

См. Определение википедии bean. По определению они сериализуемы.

И serialVersionUID используется как универсальный идентификатор версии для класса Serializable. После того, как класс будет сериализован при начале процесса десериализации, это число используется для обеспечения того, чтобы загруженный класс соответствовал точно сериализованному объекту.

  • 1
    Не был ли вопрос, почему бобы сериализуются? Этот ответ только утверждает очевидное: бины сериализуются. Не дает причину, почему
  • 0
    Но почему бин должен быть сериализован
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню