Сериализация В java. Определение Сериализация это процесс сохранения состояния объекта в последовательность байт; Десериализация это процесс восстановления.

Презентация:



Advertisements
Похожие презентации
Jalapeño – эффективная разработка приложений для Java Морозов Максим InterSystems Symposium 2007, Москва 4-5 сентября.
Advertisements

Архитектура метаданных WWW. Язык RDF Архитектура метаданных WWW RDF.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 14. тема: XML-ТЕХНОЛОГИИ В БАЗАХ ДАННЫХ.
Сериализация пользовательских моделей среды визуального моделирования QReal Выполнил: Александр Меламуд Руководитель: Юрий Литвинов.
То, что вы так хотели узнать, но боялись спросить... Ссылки XML Презентацию подготовил Чудновский Андрей, гр.950б.
WEB- ТЕХНОЛОГИИ Лекция 4. Задача преобразования XML- данных 1 Задача преобразования Для передачи данных между разными приложениями необходимо преобразовать.
КУРС «WEB-ДИЗАЙН». Что такое Web-страница? То, что мы видим в окне браузера, когда заходим на какой-либо сайт! Мы видим веб-страницу сайта – ее содержимое!
WEB- ТЕХНОЛОГИИ Лекция 6. Понятие Web- сервисов 1 Интерфейс в глобальную сеть для некоторого абстрактного программного обеспечения, этот интерфейс позволяет.
1 Диаграммы реализации (implementation diagrams).
SAX Simple API for XML Презентацию подготовила Иванова Анна, гр. 950б.
Создание и редактирование базы данных 1. Рассмотрим форматы полей: символьный, числовой, дата, время. 2. Выполним практическую работу «создание и редактирование.
Prezentacii.com. Одним из наиболее широко распространенных видов сервисных программ являются программы, предназначенные для архивации, упаковки файлов.
Технические спецификации и программные комплексы E2EDM Белов С.В., Сухоносов С.В., Булгакова К.В ЦОД ВНИИГМИ-МЦД,2006.
Потоки (файлы) Функции и типы для работы с потоками в стиле С описаны в модуле stdio.h. В отличие от Паскаля в С с потоком не связан тип данных. Поток.
Основы языка HTML: тэги, атрибуты тэгов, комментарии.
Автоматическая обработка естественного языка I. Обработка письменного текста.
Методология объектно- ориентированного программирования.
Системы распознавания текста Технология обработки текстовой информации.
Язык запросов XML. XML (Extensible Markup Language) - это новый SGML-производный язык разметки документов, позволяющий структурировать информацию разного.
Система программ «1 С: ПРЕДПРИЯТИЕ» Структура Элементы Средства.
Транксрипт:

Сериализация В java

Определение Сериализация это процесс сохранения состояния объекта в последовательность байт; Десериализация это процесс восстановления объекта, из этих байт. JAVA API предоставляет стандартный механизм сериализации, это просто синтаксический сахар.

СТАНДАРТНЫЙ МЕХАНИЗМ java.io.Serializable

Зачем это придумали? Необходимость общаться нескольким компонентам java (т.е. нужен протокол передачи данных) Возможность сохранения и восстановления состояния объектов Возможность копирования сложных объектов

Зачем это придумали?

Передача данных с клиента на сервер

Как сериализовать? Класс объекта должен реализовать интерфейс java.io.Serializable В этом интерфейсе нет ни одного метода, он просто маркирует объект как сериализуемый

Как сериализовать? Для сериализации объекта необходимо передать экземпляр класса в метод weriteObject() класса java.io.ObjectOutputStream Теперь объект записан в файл

Десереализация Обратный процесс использует метода readObject() класса java.io.ObjectInputStream

Что лежит в файле temp.out Шестнадцатеричное представление содержимого. Два шестнадцатеричных символа представляют один байт, т.е. в файле 51 байт, тогда как в классе TestSerial всего 2 значения по байту.

Алгоритм сериализации запись метаданных о классе ассоциированном с объектом рекурсивная запись описания суперклассов, до тех пор пока не будет достигнут java.lang.Object после окончания записи метаданных начинается запись фактических данных ассоциированных с экземпляром, только в этот раз начинается запись с самого верхнего суперкласса рекурсивная запись данных ассоциированных с экземпляром начиная с самого низшего суперкласса

Десериализация в другой jvm Чтобы класс можно было сериализовать в одной jvm, а десериализовать в другой необходимо, чтобы в обе jvm были загружены классы с одинаковым описанием и указанным SerialVersionUID.

JAXB Java Architecture for XML Binding

Что такое JAXB Стандартная технология для связывания объектной модели с XML документом на java Используется для преобразования XML в java объекты и наоборот Позволяет не заботится о методе разбора XML

Основные методы JAXB Marshalling – преобразования java объекта в XML UnMarshalling – преобразование XML в java объект Примечание Можно заметить что в случае когда речь идёт о текстовом формате переноса данных вместо слова сериализация часто используют слово маршалинг. Маршалинг здесь более узкое понятие чем сериализация и указывает на то что формат преобразования будет текстовым (XML), а не бинарным (java Serializable).

Marshalling

UnMarshalling

Java object to XML 1.Создаём простой java объект 2.Добавляем jaxb аннатации

Пример класса Определяет корневой элемент XML файла Определяет порядок элементов в XML Определяет элемент XML, также устанавливает имя сущности Добавляет обёртку над элементом Заметим, что список хранит элементы типа State. А как сериализовать State?

Аннотированный класс Stae.java Означает, что класс Country будет корневым элементом

Сериализация в XML Создание экземпляра класса Country Создание jaxb контекста Создание маршалера Сериализация созданного экземплара

XML документ

Процесс десериализации Создание jaxb контекста Создание анмаршалера Сериализация созданного экземплара Вывод

JAXB генерация классов Java классы содержат сложную и не всегда очевидные аннотации Иногда нужно, чтобы java классы генерировались из готового описания структуры xml JAXB имеет специальную утилиту для генерации классов (%JAVA_HOME\bin\xjc.exe%) из xsd документа.

Xml Schema definition (xsd) Это стандартное (w3c) описание формата данных передаваемого в xml Правильный xml документ Специально создавалась для использования внутри программного обеспечения для обработки документов Благодаря включению одного документа в другой позволяет распространять стандарты

Информация в xsd Xsd обязательно содержит: – Словарь (называние элементов и атрибутов) – Модель содержания (отношение между элементами и их структура) – Типы данных Такая информация позволяет легко подготовить классы ООП языка В качестве альтернативы XML Schema раньше применялась DTDDTD

Схема работы JAXB Для XML пишется XML схема в виде xsd файла Используя утилиту xjc из стандартной поставки Java JDK генерируете из схемы набор классов. Классы включаются в программу. JAXB marshaller используется для генерации XML из объектов, unmarshaller – для получения объектов из XML

Схема работы JAXB

Пример описания xsd

Заголовок документа Namespace для xml Заголовок xml

Описание элементов

Описание структуры

Генерация Фабрика для создания объектов Хранит информацию о namespaceе Остальные сгенерированные классы являются простыми проаннотированными java классами представляющими элементы xml

JSON Изучить самомтоятельно Gjson Jackson