Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемИван Тименков
1 Сериализация В java
2 Определение Сериализация это процесс сохранения состояния объекта в последовательность байт; Десериализация это процесс восстановления объекта, из этих байт. JAVA API предоставляет стандартный механизм сериализации, это просто синтаксический сахар.
3 СТАНДАРТНЫЙ МЕХАНИЗМ java.io.Serializable
4 Зачем это придумали? Необходимость общаться нескольким компонентам java (т.е. нужен протокол передачи данных) Возможность сохранения и восстановления состояния объектов Возможность копирования сложных объектов
5 Зачем это придумали?
6 Передача данных с клиента на сервер
7 Как сериализовать? Класс объекта должен реализовать интерфейс java.io.Serializable В этом интерфейсе нет ни одного метода, он просто маркирует объект как сериализуемый
8 Как сериализовать? Для сериализации объекта необходимо передать экземпляр класса в метод weriteObject() класса java.io.ObjectOutputStream Теперь объект записан в файл
9 Десереализация Обратный процесс использует метода readObject() класса java.io.ObjectInputStream
10 Что лежит в файле temp.out Шестнадцатеричное представление содержимого. Два шестнадцатеричных символа представляют один байт, т.е. в файле 51 байт, тогда как в классе TestSerial всего 2 значения по байту.
11 Алгоритм сериализации запись метаданных о классе ассоциированном с объектом рекурсивная запись описания суперклассов, до тех пор пока не будет достигнут java.lang.Object после окончания записи метаданных начинается запись фактических данных ассоциированных с экземпляром, только в этот раз начинается запись с самого верхнего суперкласса рекурсивная запись данных ассоциированных с экземпляром начиная с самого низшего суперкласса
12 Десериализация в другой jvm Чтобы класс можно было сериализовать в одной jvm, а десериализовать в другой необходимо, чтобы в обе jvm были загружены классы с одинаковым описанием и указанным SerialVersionUID.
13 JAXB Java Architecture for XML Binding
14 Что такое JAXB Стандартная технология для связывания объектной модели с XML документом на java Используется для преобразования XML в java объекты и наоборот Позволяет не заботится о методе разбора XML
15 Основные методы JAXB Marshalling – преобразования java объекта в XML UnMarshalling – преобразование XML в java объект Примечание Можно заметить что в случае когда речь идёт о текстовом формате переноса данных вместо слова сериализация часто используют слово маршалинг. Маршалинг здесь более узкое понятие чем сериализация и указывает на то что формат преобразования будет текстовым (XML), а не бинарным (java Serializable).
16 Marshalling
17 UnMarshalling
18 Java object to XML 1.Создаём простой java объект 2.Добавляем jaxb аннатации
19 Пример класса Определяет корневой элемент XML файла Определяет порядок элементов в XML Определяет элемент XML, также устанавливает имя сущности Добавляет обёртку над элементом Заметим, что список хранит элементы типа State. А как сериализовать State?
20 Аннотированный класс Stae.java Означает, что класс Country будет корневым элементом
21 Сериализация в XML Создание экземпляра класса Country Создание jaxb контекста Создание маршалера Сериализация созданного экземплара
22 XML документ
23 Процесс десериализации Создание jaxb контекста Создание анмаршалера Сериализация созданного экземплара Вывод
24 JAXB генерация классов Java классы содержат сложную и не всегда очевидные аннотации Иногда нужно, чтобы java классы генерировались из готового описания структуры xml JAXB имеет специальную утилиту для генерации классов (%JAVA_HOME\bin\xjc.exe%) из xsd документа.
25 Xml Schema definition (xsd) Это стандартное (w3c) описание формата данных передаваемого в xml Правильный xml документ Специально создавалась для использования внутри программного обеспечения для обработки документов Благодаря включению одного документа в другой позволяет распространять стандарты
26 Информация в xsd Xsd обязательно содержит: – Словарь (называние элементов и атрибутов) – Модель содержания (отношение между элементами и их структура) – Типы данных Такая информация позволяет легко подготовить классы ООП языка В качестве альтернативы XML Schema раньше применялась DTDDTD
27 Схема работы JAXB Для XML пишется XML схема в виде xsd файла Используя утилиту xjc из стандартной поставки Java JDK генерируете из схемы набор классов. Классы включаются в программу. JAXB marshaller используется для генерации XML из объектов, unmarshaller – для получения объектов из XML
28 Схема работы JAXB
29 Пример описания xsd
30 Заголовок документа Namespace для xml Заголовок xml
31 Описание элементов
32 Описание структуры
33 Генерация Фабрика для создания объектов Хранит информацию о namespaceе Остальные сгенерированные классы являются простыми проаннотированными java классами представляющими элементы xml
34 JSON Изучить самомтоятельно Gjson Jackson
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.