
- •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. Яна
27. Метаданные их роль и использование в jee. Применение аннотаций в jee и ejb в 3.0 и последующих версиях. Лиза
Спецификация EJB была рассчитана на решение таких сложных проблем как распределенные вычисления, управление транзакциями и персистентность данных. Цель EJB 3.0 - сделать начальную стадию разработки легче, а приложения - более удобными в сопровождении.
Особенности ejb 3.0
1. EJB 2.0 требует написания дескрипторов развертывания (XML) (deployment descriptors), в то время как в EJB 3.0 их попросту нет.
2. В EJB 2.0 необходимо создавать Home и Remote интерфейсы, в то время как в EJB 3.0 нет необходимости этого делать.
3. В EJB 3.0 мы идентифицируем все сущности с помощью символа "@" (Использование аннотаций).
4. В EJB 2.1 приходилось использовать поиск JNDI для доступа к другому EJB. С EJB 3.0 можно использовать аннотацию (@EJB) для доступа к EJB, что упрощает конфигурацию.
Класс компонента Stateless Session Bean в технологии ejb 3.0 должен удовлетворять следующим требованиям:
*Должен быть объявлен с аннотацией @Stateless (либо должен обозначаться в дескрипторе развертывания как stateless session bean)
*Класс компонента либо должен реализовать свой бизнес-интерфейс, либо использовать аннотацию для указания его бизнес-интерфейсов. Интерфейс может быть либо локальным, либо удаленным (при этом он объявляется с аннотацией @Remote). В бизнес-интерфейсе объявляются бизнес-методы, доступные для клиента.
Основные аннотации EJB 3.0:
@EJB — помечается используемый в классе компонент EJB;
@Stateless — определяется stateless session bean;
@Stateful — определяется stateful session bean;
@Singleton — определяется singleton session bean;
@Local — определяется local session bean;
@LocalBean — определяется bean, который будет использован локально, следовательно его не нужно сериализовать;
@Remote — компонент доступен через RMI (Remote Method Invocation);
@Remove — помеченный данной аннотацией метод говорит контейнеру, что после его исполнения нет больше смысла хранить компонент EJB, т.е. его состояние сбрасывается;
@Entity — аннотация говорит контейнеру, что класс будет сущностью БД.
Метаданные - это субканальная информация об используемых данных. Информация о содержащейся на веб-странице информации (создателе и т. п.). Пример: Имя автора правки в тексте. Этот термин в широком смысле слова используется для любой информации о данных: именах таблиц, колонок в таблице в реляционных базах данных, номер версии в файле программы (то есть как информативная часть в бинарном файле) и т. п.
Структурированные данные, представляющие собой характеристики описываемых сущностей для целей их идентификации, поиска, оценки, управления ими.
набор допустимых структурированных описаний, которые доступны в явном виде и предназначение которых может помочь найти объект. Термин используется в контексте поиска объектов, сущностей, ресурсов.
28. Перехватчики Java Interceptors в Java ee. Java Interceptors в ejb 3.Х. Ксюша
Интерсепторы перехватывают вызовы методов бинов для выполнения определенных действий перед методом. Перехватывающий метод должен быть помечен аннотацией @AroundInvoke, позже подробнее рассмотрим его свойства. Теперь для перехвата вызова нужного нам метода достаточно только добавить ему аннотацию с указанием нужного интерсептора
public class SimpleLogger{
@AroundInvoke
public Object addLog(InvocationContext context){
//какая-то логика логирования
return context.proceed();}
public class Summ {
@Interceptors (SimpleLogger.class)
public double getResult(){
//логика }}
Так же можно перехватить callback методы жизненного цикла перехватываемого бина, для этого необходимо добавить соответствующие методы в класс интерсептора.
public class SimpleLogger{
@PostConstruct
public void init(InvocationContext context){
//логирование создания объекта, например через context.getTarget()
context.proceed():
}
@PreDestroy
public void remove(InvocationContext context){
//какая-то логика
context.proceed():
}
}
Еще одним особенным применением интерсепторов является то, что вы можете объявить так называемый “default interceptor” действие которого будет расспространятся на все классы внутри одного приложения. Такой перехватчик можно объявить только через дескриптор развертывания
<interceptor-binding>
<ejb-name>*<ejb-name>
<interceptor-class> ru.interceptortest.Validate</interceptor-class>
</interceptor-binding>
При этом, если необходимо, что бы действие этого интерсептора не расспростанялось на какой-либо класс, его необходимо пометить его аннотаций @ExcludeDefaultInterceptors.
29. Инверсия контроля и внедрение зависимостей в Java. Применение DI в EJB 3. Примеры реализации клиента и сервера для сессионных бинов. ЯНА
Inversion of Control (инверсия управления) — это некий абстрактный принцип, набор рекомендаций для написания слабо связанного кода. Суть которого в том, что каждый компонент системы должен быть как можно более изолированным от других, не полагаясь в своей работе на детали конкретной реализации других компонентов.
Dependency Injection (внедрение зависимостей) — процесс предоставления внешней зависимости программному компоненту.
IoC-контейнер — это какая-то библиотека, фреймворк, программа если хотите, которая позволит вам упростить и автоматизировать написание кода с использованием данного подхода на столько, на сколько это возможно.
Практика
@Stateful
public class AccountBean implements Account //реализует бизнес интерфейс
{
private int balance = 0;
@EJB(beanName="ServiceBean")//Пример применения DI для EJB бина
private Service service;
@inject//Пример применения DI для POJO
private PersonalData;
public void deposit(int amount) {
balance += amount;
System.out.println("deposited: "+amount+" balance: "+balance);
}
public void withdraw(int amount) {
balance -= amount;
System.out.println("withdrew: "+amount+" balance: "+balance);
}}