1 © Luxoft Training 2013 Модуль Спецификация Java Beans. Цели Правила описания Java Bean Обзор спецификации Java Beans Использование технологии в настоящее время Использование технологии в JSP
2 © Luxoft Training 2013 Java Beans JavaBeans - классы языка Java, написанные по определённым правилам и соглашениям 5-2 Введение
3 © Luxoft Training 2013 Java Beans Спецификация Sun Microsystems определяет JavaBeans, как «универсальные программные компоненты, которые могут управляться с помощью графического интерфейса» («reusable software components that can be manipulated visually in a builder tool») 5-3 Введение
4 © Luxoft Training 2013 Java Beans JavaBeans обеспечивают основу для многократно используемых, встраиваемых и модульных компонентов ПО Компоненты JavaBeans могут принимать различные формы, но наиболее широко они применяются в элементах графического пользовательского интерфейса 5-4 Введение
5 © Luxoft Training 2013 Java Beans Одна из целей создания JavaBeans - взаимодействие с похожими компонентными структурами Например, Windows-программа, при наличии соответствующего моста или объекта-обёртки, может использовать компонент JavaBeans так, будто бы он является компонентом COM или ActiveX 5-5 Введение
6 © Luxoft Training 2013 Модуль 5 Технология Java Beans 5-6 Спецификация Java Beans. Цели Правила описания Java Bean Обзор спецификации Java Beans Использование технологии в настоящее время Использование технологии в JSP
7 © Luxoft Training 2013 Правила создания Java Beans Чтобы класс мог работать как bean, он должен соответствовать определённым соглашениям об именах методов, конструкторе и поведении Эти соглашения дают возможность создания инструментов, которые могут использовать, замещать и соединять JavaBeans 5-7 Введение
8 © Luxoft Training 2013 Правила создания Java Beans Класс должен иметь public конструктор без параметров. Такой конструктор позволяет инструментам создать объект без дополнительных сложностей с параметрами 5-8 Правила
9 © Luxoft Training 2013 Правила создания Java Beans Свойства класса должны быть доступны через get, set и другие методы (так называемые методы доступа), которые подчинятся стандартному соглашению об именах Это легко позволяет инструментам автоматически определять и обновлять содержание beanов 5-9 Правила
10 © Luxoft Training 2013 Правила создания Java Beans Многие инструменты даже имеют специализированные редакторы для различных типов свойств Класс должен быть сериализуем. Это даёт возможность надёжно сохранять, хранить и восстанавливать состояние bean независимым от платформы и виртуальной машины способом 5-10 Правила
11 © Luxoft Training 2013 Правила создания Java Beans Т.к. методы get/set доступа являются неотъемлемой частью описания бина, они вошли в жаргон под названием getter/setter (в т.ч. в русском эквиваленте геттер/сеттер) 5-11 Правила
12 © Luxoft Training 2013 Правила создания Java Beans Так как требования в основном изложены в виде соглашения, а не интерфейса, некоторые разработчики рассматривают JavaBeans, как Plain Old Java Objects, которые следуют определённым правилам именования и создания В противовес более сложным компонентным моделям (e.g. EJB2) 5-12 POJO классы
13 © Luxoft Training 2013 Java Beans 5-13 Пример создания
14 © Luxoft Training 2013 Java Beans 5-14 Пример создания
15 © Luxoft Training 2013 Модуль 5 Технология Java Beans 5-15 Спецификация Java Beans. Цели Правила описания Java Bean Обзор спецификации Java Beans Использование технологии в настоящее время Использование технологии в JSP
16 © Luxoft Training 2013 Java Beans Помимо правил создания JavaBeans спецификация Java Beans описывает: Средства построения (визуальный редактор Bean Box), который обнаруживает характеристики Бина (такие как его свойства, методы и события) в процессе, известном как интроспекция 5-16 Спецификация
17 © Luxoft Training 2013 Java Beans Свойства являются характеристиками внешнего вида и поведения Бина, которые могут быть изменены во время проектирования Инструменты построения интроспектируют Бин для обнаружения его свойств и открывают эти свойства для манипулирования ими 5-17 Спецификация
18 © Luxoft Training 2013 Java Beans Бин раскрывает свои свойства так, что они могут быть настроены во время проектирования Настройка поддерживается двумя путями: использованием редакторов свойств или использованием более сложных настройщиков бинов 5-18 Спецификация
19 © Luxoft Training 2013 Java Beans Бин использует события для связи с другими Бинами Бин, который хочет принимать события (Бин-слушатель) регистрирует свою заинтересованность у Бина, который возбуждает событие (Бина-источника) 5-19 Спецификация
20 © Luxoft Training 2013 Java Beans Средства построения могут проверять Бин и определять, какие события этот Бин возбуждает (посылает) и какие он может обрабатывать (принимать) 5-20 Спецификация
21 © Luxoft Training 2013 Java Beans Персистентность позволяет Бинам сохранять и восстанавливать из состояние Если свойства Бина изменились, то можно сохранить состояние Бина При последующем восстановлении этого бина его свойства сохранятся 5-21 Спецификация
22 © Luxoft Training 2013 Java Beans JavaBeans использует сериализацию объектов Java для поддержки персистентности Однако не все java-классы с «народным» названием POJO обязаны быть сериализуемыми 5-22 Спецификация
23 © Luxoft Training 2013 Модуль 5 Технология Java Beans 5-23 Спецификация Java Beans. Цели Правила описания Java Bean Обзор спецификации Java Beans Использование технологии в настоящее время Использование технологии в JSP
24 © Luxoft Training 2013 Java Beans Однако, в настоящее время эти аспекты спецификации мало востребованы Идея повторно используемых компонентов была реализована в других спецификациях и фреймворках, таких как Enterprise Java Beans и Spring Framework 5-24 Практическое применение
25 © Luxoft Training 2013 Java Beans Под Java Beans теперь чаще всего понимаются POJO классы, описанные по вышеуказанным правилам и служащие для реализации простейших компонентных моделей При этом POJO не обязан следовать всем правилам спецификации JavaBeans 5-25 Практическое применение
26 © Luxoft Training 2013 Java Beans Так же Java Beans находят применение в технологии Java Server Pages Согласно паттерну MVC (Model View Controller) view (представление, реализуемое с использованием jsp страницы) должно отвечать только за отображение некоторых Java данных 5-26 jsp
27 © Luxoft Training 2013 Java Beans Поэтому не рекомендуется передавать в jsp страницу сложные и «тяжелые» доменные объекты, а создавать DTO бины, следующие спецификации Java Beans и использовать специальную директиву useBean 5-27 jsp
28 © Luxoft Training 2013 Java Beans Например, следующий скрипт лет используется для того, чтобы положить экземпляр класса, описывающего данные в сессию, для последующего использования: <% ShoppingCart cart = (ShoppingCart)session.getAttribute("cart"); if (cart == null) { cart = new ShoppingCart(); session.setAttribute("cart", cart); } %> 5-28 Пример использования в jsp
29 © Luxoft Training 2013 Java Beans Если данный класс описан согласно спецификации Java Beans, то код JSP переписывается в виде: 5-29 Пример использования в jsp
30 © Luxoft Training 2013 Java Beans При этом доступ к свойствам бина осуществляется следующим образом: "/> 5-30 Пример использования в jsp
31 © Luxoft Training 2013Упражнение 5-31 Упражнение 17 Bank Application Создание Java Bean
32 © Luxoft Training 2013 Модуль 5 Технология Java Beans 5-32 Спецификация Java Beans. Цели Правила описания Java Bean Обзор спецификации Java Beans Использование технологии в настоящее время Использование технологии в JSP