Komponenty EJB
Tworzenie komponentów EJB
Kod szkolenia: JAVA-EJB
Szkolenie adresowane jest do programistów warstwy biznesowej i integracji w dużych systemach klasy Enterprise, zainteresowanych gotowymi i prostymi w użyciu rozwiązaniami zawartymi w JEE.
Szkolenie ma na celu nabycie umiejętności tworzenia komponentów EJB, zarówno aby udostępniać logikę zdalną, jak również aby wykorzystać gotowe cechy systemów klasy Enterprise dostarczane przez kontenery (np. zarządzanie bezpieczeństwem, zarządzanie transakcjami, transakcje rozproszone, zadania odroczone i wiele innych).
Jednocześnie uczestnik uczy się jak dokonać integracji z systemami tego typu. Tak na poziomie EJB jak i JMS.
3 dni, po 8 godzin. Łącznie 24 godzin(y) szkolenia.
Oczekiwane przygotowanie słuchaczy przed szkoleniem
Od uczestników wymagana jest umiejętność programowania w języku Java.
Polecane szkolenia uzupełniające
Szkolenie poprzedzające - Programowanie w Java (JAVA-PRO).
W naszej ofercie znajdują się również szkolenia uzupełniające w zakresie JEE:
JAVA-WYD,
JAVA-JSF,
JAVA-WS,
JAVA-JPA,
JAVA-JEE.
A także szkolenia na wyższych poziomach: projektowanie (JAVA-WZO) i architektura (JAVA-ARCH)
- Wprowadzenie do JEE
- 3 modele aplikacji
- Web-centric
- Application-centric
- Enterprise
- Wymagania na systemy klasy Enterprise
- Standardy JEE
- Specyfikacje JEE
- JSTL
- JSF
- JAAS
- JTA
- JPA
- JNDI
- JMS
- Pozostałe specyfikacje JEE
- Komponenty JEE
- Obsługi HTTP
- Servlety
- Strony JSP
- Komponenty EJB
- Sesyjne
- Statefull
- Stateless
- Singleton (od EJB 3.1 - JEE6)
- MDB
- Encyjne (do EJB 2.x)
- Komunikacja z komponentami EJB
- WebService
- Kontenery JEE
- Servletów
- Serwer Aplikacyjny
- Architektura Enterprise
- Architektura oparta na rozproszonych komponentach
- Problemy architektury komponentowej
- Usługi serwera aplikacji JEE
- Architektura wielowarstwowa
- Architektura typu Enterprise w JEE
- Komponenty EJB
- Sesyjne EJB
- Rodzaje dostępów
- Zdalny @Remote
- Lokalny @Local
- Lokalny bezinterfejsowy @LocalBean (od EJB 3.1 - JEE6)
- Klient EJB
- Podstawy JNDI
- Zdalne użycie EJB
- Lokalne użycie EJB
- Lokalne użycie EJB bez interfejsu
- Bezstanowe EJB @Stateless
- Cechy
- Tworzenie
- Cykl życia
- @PostConstruct
- @PreDestroy
- Stanowe EJB @Stateful
- Cechy
- Tworzenie
- Cykl życia
- @PostConstruct
- @PrePassivate
- @PostActivate
- @PreDestroy
- @Remove
- @StatefulTimeout (od EJB 3.1 - JEE6)
- @AccessTimeout (od EJB 3.1 - JEE6)
- Singleton EJB @Singleton (od EJB 3.1 - JEE6)
- Cechy
- Tworzenie
- Cykl życia
- @PostConstruct
- @PreDestroy
- @Startup
- @DependsOn
- Synchronizacja Singleton EJB
- @ConcurrencyManagement
- @ConcurrencyManagementType
- @Lock
- @LockType
- @AccessTimeout (od EJB 3.1 - JEE6)
- MDB - Message Driven Bean
- Podstawy JMS
- Kanały kounikacji
- Topic
- Queue
- Słuchacze
- MessageListener
- Message
- Producenci
- ConnectionFactory
- Connection
- Session
- Message
- BytesMessage
- MapMessage
- ObjectMessage
- StreamMessage
- TextMessage
- MessageProducer
- Tworzenie MDB
- @MessageDriven
- @ActivactionConfigProperty
- Komunikacja na kolejkach Queue
- Komunikacja na tematach Topic
- Selekcja odbiorców
- messageSelector
- Message properties
- Trwali odbiorcy (subscriptionDurability)
- Potwierdzanie dostarczenia (acknowdlegeMode)
- Cykl życia
- @PostConstruct
- @PreDestroy
- Zarządzanie zależnościami
- Odnajdywanie elementów w JNDI
- Zależności EJB
- @EJB - wstrzykiwanie
- @EJBs
- Zależności zasobów (JDBC, JMS, obiekty kontekstowe)
- @Resource - wstrzykiwanie
- @Resources
- Obiekty kontekstowe
- EJBContext
- SessionContext
- MessageDrivenContext
- EntityContext (do EJB 2.x)
- Transakcje
- Założenia - ACID
- Sterowanie transakcjami
- Określanie typu sterowania
- @TransactionManagement
- TransactionManagementType
- Propagacja kontekstu transakcji
- Transakcje zarządzane przez EJB
- UserTransaction
- Transakcje zarządzane przez kontener
- @TransactionAttribute
- Poziomy transakcyjności TransactionAttributeType
- REQUIRED
- REQUIRES_NEW
- SUPPORTS
- NOT_SUPPORTED
- MANDATORY
- NEVER
- Transakcje a API EJBContext
- setRolbackOnly
- getRolbackOnly
- Transakcje a wyjątki
- Wyjątki systemowe
- Wyjątki aplikacyjne
- @ApplicationException
- Transakcje rozproszone
- Transakcja lokalna a rozproszona
- Zatwierdzanie dwuetapowe - 2PC
- Standard X/Open
- Manager transakcji (TX)
- Manager zasobów (XA)
- JTA jako rozwiązanie w Javie
- Konfiguracja JDBC
- Zadania czasowe i asynchroniczne
- Tworzenie zadań czasowych
- TimerService
- ScheduleExpression (od EJB 3.1 - JEE6)
- Timer
- TimerConfig
- TimerHandle
- Interfejs TimedObject
- @Timeout
- Metody planowane - scheduling (od EJB 3.1 - JEE6)
- @Schedule
- @Schedules
- Metody asynchroniczne (od EJB 3.1 - JEE6)
- @Asynchronous
- Future<V>
- AsyncResult<V>
- Zadania czasowe a transakcje
- Bezpieczeństwo
- Podstawy bezpieczeństwa
- Domeny bezpieczeństwa
- Bezpieczeństwo w EJB
- Konfiguracja adnotacjami
- @RolesAllowed
- @PermitAll
- @DenyAll
- @RunAs
- @DeclareRoles
- Weryfikacja przez API (EJBContext)
- getCallerPrincipal
- isCallerInRole
- Konfiguracja w ejb-jar.xml
- Intercepting - programowanie aspektowe
- Interceptory rejestrowane w EJB
- Definiowanie aktywnych interceptorów
- @Interceptors
- @ExcludeDefaultInterceptors
- @ExcludeClassInterceptors
- Tworzenie interceptora
- @AroundInvoke
- InvocationContext
- Interceptory zadań czasowych (od EJB 3.1 - JEE6)
- @AroundTimeout
- InvocationContext.getTimer()
- Interceptory cyklu życia (callback)
- Intercepcja transakcji w komponentach stanowych
- SessionSynchronization
- Adnotacjami (od EJB 3.1 - JEE6)
- @AfterBegin
- @BeforeCompletion
- @AfterCompletion
- Interceptory rejestrowane w ejb-jar.xml
- Definiowanie interceptorów
- Interceptor globalny
- Określanie porządku wykonania
- Interceptory rejestrowane własnymi adnotacjami (od EJB 3.1)
- Podstawy tworzenia adnotacji
- @InterceptorBinding
- @Interceptor
- Produkcja EJB
- Paczka jar z EJB
- Paczka ear
- Lokalizacja EJB a nazwa JNDI
- EJB a Web Service
- Podstawy Web Service
- @WebService na komponencie bezstanowym
- EJB zależne od Web Service
- @WebServiceRef - wstrzykiwanie
- @WebServiceRefs
- EJB a JPA
- Podstawy JPA
- EJB zależne od JPA
- @PersistanceUnit
- @PersistanceContext