Как сохранить состояние Java-бина в не веб-приложении?

В рамках моей RFT QA Automation я должен сохранить состояние (объект) Java-бина и получить доступ к объекту во всем приложении. Синглтон может не работать здесь, так как это не веб-приложение. Не могли бы вы предложить какой-либо другой подход? хранить состояние Java-бобов.

Ценю твою помощь.

Спасибо

2 ответа

Я не уверен, что понимаю вашу проблему, но почему бы и нет

  • сериализовать объекты на диск / базу данных /...
  • использовать статическое хранилище (статический синглтон)

По сути, это типичная проблема сериализации / десериализации. В общем, вам нужна возможность записать состояние класса на персистентный слой, а затем иметь возможность восстановить "тот же" экземпляр с персистентного слоя. Существует встроенный механизм Java, который работает через Serializable интерфейс. Однако он редко используется из-за неудобств. Один из самых популярных способов сделать это - сериализовать экземпляры вашего класса в формат JSON или XML, а затем прочитать его обратно и создать экземпляр из этого формата. Если вам нужно, чтобы текст был удобочитаемым, предпочтительным является XML, в противном случае JSON является обычным выбором. Лучшим инструментом для сериализации JSON является JSON Jackson (FasterXML/jackson). Вот соответствующие ссылки: Json Jackson home. Основным классом, который вам нужно будет использовать, является ObjectMapper. Это простой в использовании. Вот статья с примером. Как только вы получите Json String вашего экземпляра, запишите его в файл или базу данных, а затем прочитайте его и используйте ObjectMapper воссоздать ваш экземпляр. Это просто и работает очень хорошо

Другие вопросы по тегам