- •8. Совместная разработка проектов, Системы контроля версий (скв). Непрерывная интеграция - Continuous Integration (ci) Методы, средства, инструменты и механизмы разработки и сборки проектов. Полина
- •12. Технология corba.Спецификация, основы архитектуры, механизмы, основные сервисы, организация запросов в corba. Саша
- •14. Платформа j2ee. (основные технологии стека). Enterprise JavaBeans (ejb), обобщенная архитектура, принципы функционирования и структура программного обеспечения. Полина
- •Существует две "основных" модели обмена сообщениями:
- •Характеристики ptp messaging следующие:
- •Характеристики:
- •25. Message Driven Beans (mdb), жизненный цикл компонентов. Особенности разработки, применения и функционирования mdb, реализующие методы (примеры разработки клиента и серверной части). Настя
- •Отличия mdb:
- •27. Метаданные их роль и использование в jee. Применение аннотаций в jee и ejb в 3.0 и последующих версиях. Лиза
- •Особенности ejb 3.0
- •Класс компонента Stateless Session Bean в технологии ejb 3.0 должен удовлетворять следующим требованиям:
- •28. Перехватчики Java Interceptors в Java ee. Java Interceptors в ejb 3.Х. Ксюша
- •30. Технология Entity Persistence, разработка классов, наследование, доступ к данным и привязка элементов сущностей в ejb 3. Саша
- •31. Сущности в Entity Persistence. Менеджер Сущностей (Entity Manager) и Контекст постоянства (Persistence Context). Методы работы с данными в Entity Persistence ejb 3. Настя
- •В интерфейсе EntityManager определены следующие группы методов:
- •33. Технология jsf. Архитектура jsf, состав и взаимодействие элементов архитектуры. Классы компонентов jsf. Рендеринг и библиотека jsp-тегов. Лиза
- •34. Технология jsf Базовые концепции технологии и функциональные возможности jsf. События, типы и обработка событий в jsf. Навигация в jsf и типы навигации поддерживаемые в jsf. Ксюша
- •35. Технология jsf. Функциональные возможности JavaServer Faces Процесс создания приложения (последовательность и назначение шагов создания). Жизненный цикл обработки запросов jsf. Яна
- •36. Технология jsf. Стандартные jsf теги. Базовые теги jsf. Html теги jsf. Атрибуты тегов. Разработка, размещение и запуск jsf приложения саша
- •Принципы solid в Java
- •Существует три основных типа внедрения зависимостей:
- •39. Spring Framework аоп (Aspect Oriented Programming или aop) . Основные понятия aop. Назначение и использование. Примеры лиза
- •40. Фреймворки и технологии доступа к данным: Интерфейс jdbc и стандарт Object-relational mapping для платформы java. Ксюша
- •42. Spring mvc. DispatcherServlet роль и функции Spring mvc , работа с контекстом и интерфейсом HandlerMapping, особенности функционирования DispatcherServlet. Саша
- •43. Spring mvc . Интерфейс WebApplicationContext. Структура, описание, роль и реализация интерфейса. Настя
- •44. Spring mvc . Интерфейс HandlerMapping, описание, роль и реализация интерфейса. Полина
- •2. Реализация HandlerMapping по умолчанию
- •45. Spring mvc . Описание, роль и реализация интерфейса ViewResolver. Лиза
- •46. Spring mvc. Взаимодействие контроллера и модели в Spring mvc. Ксюша
- •47. Spring mvc.Отображение и выбор представления в Spring mvc. Реализацией интерфейса ViewResolver и отрисовка представления пользователю. Яна
- •48. Spring boot. Базовые принципы и особенности архитектуры. Преимущество использования и сравнение с другими Фреймворками Spring. Саша
- •51. Технология Web – сервисов на основе Java api for xml Web Services (jax-ws). Пример кода реализации. Ксюша
- •52. ResTful Web-сервисы. Архитектура и особенности разработки. Преимущества и недостатки стиля rest. Яна
В интерфейсе EntityManager определены следующие группы методов:
- управление жизненным циклом сущностей (persist(), refresh(), remove(), merge());
- поиск экземпляра сущности по первичному ключу (find(), getReference());
- создание объектов типа Query, предназначенных для выполнения запросов (createNamedQuery(), createQuery(), createNativeQuery());
- управление контекстом персистентности (flush(), clear(), close(), getTransaction() и т.д.).
Основные методы:
persist() - вводит новый экземпляр сущности в персистентный контекст. При коммите транзакции командой SQL INSERT в БД будет создана соответствующая запись.
merge() - переносит состояние отсоединенного экземпляра сущности в персистентный контекст следующим образом: из БД загружается экземпляр с тем же идентификатором, в него переносится состояние переданного Detached экземпляра и возвращается загруженный Managed экземпляр. Далее надо работать именно с возвращенным Managed экземпляром. При коммите транзакции командой SQL UPDATE в БД будет сохранено состояние данного экземпляра.
remove() - удалить объект из базы данных, либо, если включен режим мягкого удаления, установить атрибуты deleteTs и deletedBy. Если переданный экземпляр находится в Detached состоянии, сначала выполняется merge().
find() - загружает экземпляр сущности по идентификатору. При формировании запроса к БД учитывается представление, переданное в параметре данного метода, либо установленное для всего EntityManager методом setView(). В результате в персистентном контексте окажется граф объектов, для которого загружены все не-lazy атрибуты представления. Остальные атрибуты можно дозагрузить обращением к соответствующим методам доступа объектов, либо вызовом метода fetch().
createQuery() - создать объект Query для выполнения JPQL запроса. Рекомендуется использовать вариант метода с передачей класса сущности для получения экземпляра TypedQuery.
createNativeQuery() - создать объект Query для выполнения SQL запроса.
setView() - устанавливает представление по умолчанию, с которым будет производиться последующая загрузка сущностей методом find() либо JPQL запросами. В результате жадно загружены будут все не-lazy атрибуты представления. Если в данный метод передать null, либо не вызывать его вообще, загрузка будет производиться в соответствие с правилами аннотаций сущностей. Представления, явно переданные в метод find() или установленные в объекте Query имеют приоритет над установленным данным методом.
addView() - аналогичен методу setView(), но в случае наличия уже установленного в EntityManager представления, не заменяет его, а добавляет атрибуты переданного представления.
fetch() - обеспечивает для экземпляра сущности загрузку всех атрибутов указанного представления, включая lazy атрибуты. Экземпляр сущности должен быть в Managed состоянии. Данный метод рекомендуется вызывать перед коммитом транзакции, если представление содержит lazy атрибуты, а экземпляр сущности нужно отправить на клиентский уровень. В этом случае только после вызова fetch() можно быть уверенным, что все нужные клиентсткому коду атрибуты действительно загружены.
reload() - перезагрузить экземпляр сущности с указанным представлением. Обеспечивает загрузку всех атрибутов представления, вызывая внутри себя метод fetch().
32. Технология JSF JSF- как реализация Фреймворка MVC. Основные принципы и компоненты реализации, преимущества технологии JSF по сравнению с аналогичными технологиями разработки веб-приложений. ПОЛИНА
JavaServer Faces (JSF) — это фреймворк для веб-приложений, написанный на Java. Он служит для того, чтобы облегчать разработку пользовательских интерфейсов для Java EE приложений. В отличие от прочих MVC фреймворков, которые управляются запросами, подход JSF основывается на использовании компонентов. Использование компонентов позволяет разрабатывать пользовательский интерфейс на более высоком уровне по сравнению с кодом html. Предусмотрена возможность повторно обращаться к собственным компонентам и применять наборы компонентов сторонних разработчиков.
Состояние компонентов пользовательского интерфейса сохраняется, когда пользователь запрашивает новую страницу и затем восстанавливается, если запрос повторяется. Для отображения данных обычно используется JSP, но JSF можно приспособить и под другие технологии.
При этом модель (Model) – это коллекция классов, которые служат для сохранения, изменения и получения данных; представление (View) – это jsf страница в xhtml формате; поведение (Controller) – это managed bean, который интерпретирует данные, введённые пользователем, и информирует модель о необходимости соответствующей реакции. JSF также хорошо интегрируется со Spring.
Платформа JSF состоит из следующих частей:
1.Набор заранее подготовленных компонентов для использования интерфейса;
2.Модель программирования, управляемая событиями;
3.Модель компонентов, позволяющая сторонним разработчикам предоставлять дополнительные компоненты.
Жизненный цикл обработки запроса JSF:
1)Восстановление представления (запрос поступает на вход сервлета FacesServlet. Последний анализирует данные запроса и извлекает идентификатор представления, определяемый именем страницы JSP)
2)Получение значений запроса (отправленные данные сохраняются в компонентах)
3)Проверка данных (валидация данных)
4)Обновление данных модели (локальные значения используются для обновления бинов, которые привязаны к компонентам)
5)Вызов приложения (вызывает приложение для обработки данных, полученных через форму)
6)Формирование ответа (значения компонентов заполняются из managed bean полей)
Преимущества JSF 2 по сравнению с MVC (servlet + jsp):
1. JSF обеспечивает программиста хорошим набором API, что даёт возможность создавать свои компоненты. Также можно воспользоваться уже готовыми компонентами, такими как: PrimeFaces, ICEfaces, RichFaces, PrettyFaces, OpenFaces и др.
2. С помощью JSF легко указать, с помощью какого Java кода будет обрабатываться форма.
3. JSF расширяет/добавляет возможность валидировать/конвертировать значения.
4. JSF дает вам возможность без использования JavaScript, а также AJAX ориентированных фреймворков, таких, как Jquery, EXT-JS, Prototype и др. писать AJAX ориентированное приложение, используя простые в использовании компоненты JSF.
5. JSF имеет встроенную возможность валидировать поля форм, конвертировать string поля ко многим другим типам данных. Если валидация/конвертация прошла с ошибкой, форма может быть автоматически показана с ошибкой вместе с предыдущими установленными значениями. Валидация/конвертация проходит на серверной стороне.
6. Хотя у JSP есть jsp:include тег для вставки контента, однако JSF имеет полноценную поддержку системы шаблонизации страниц, которая позволяет создавать макет страницы, либо ее часть для дальнейшего использования.
7. Централизованная файловая конфигурации JSF, что позволяет вместо жесткого кодирования данных в программе Java выносить ее в конфигурационный файл. Что позволяет без редактирования Java кода и перекомпиляции изменить эти данные.
Недостатки JSF 2 по сравнению с MVC (servlet + jsp):
1. Если у вас уже есть приложение, которое написано на servlet + jsp, и у вас есть необходимость сделать в нем некоторый AJAX функционал, то гораздо проще использовать, например, Jquery (если вы знаете JavaScript), чем перевести это приложение на JSF.
2. По сравнению с JSP и servlet на JSF написано заметно меньше документации.
3. У JSF приложения есть много моментов, которые тяжело отследить, понять и оптимизировать, например генерация html/css/javascript кода выбранным компонентом, и др.
4. Существует большое количество IDE, которые поддерживают стандартный JSP и servlet, однако JSF 2 начали поддерживать недавно, так как это достаточно новая технология.