This training course presents the main Jakarta EE APIs (Jakarta Persistence, RESTful Web Services, Contexts and Dependency Injection, Messaging, etc.) through a modular architecture covering all the fundamental aspects of n-tier applications. It also includes Eclipse MicroProfile extensions and a contextualization of the associated runtimes (application server vs. Quarkus).
Participants consolidate their knowledge of Java backend architecture while practicing building a complete application, from the data access layer to the exposure of REST services. The course includes continuous integration (CI/CD), OCI image containerization, and a discussion of the choice of runtime environments (application server, Quarkus).
Objectives of the training
Model a complete backend application with Jakarta EE, combining its main APIs and taking into account performance, maintenance, and integration requirements.Targeted audience
Experienced backend developers, Java software architects, technical project managers, DevOps engineers wishing to integrate Jakarta EE into a modular or retrospective project (migration from Java EE, evolution to MicroProfile, Quarkus tools).Prerequisite
This course requires a solid understanding of the fundamentals of Java programming (principles of object-oriented programming, generic types, annotations, lambda expressions), familiarity with Java IDEs (Eclipse or IntelliJ), and principles of layered architecture.Trainers
Benefits for Participants
- Implement a multi-tier architecture with Jakarta EE and its key specifications
- Implement REST APIs and server-side web interfaces
- Manage data persistence and transactions with Jakarta Persistence
- Use asynchronous messaging with Jakarta Messaging
- Explore Eclipse MicroProfile extensions and native builds with Quarkus
Course architecture
This training course takes a modular, practical approach to structuring a business application in a Jakarta EE environment. Each step introduces one or more Jakarta EE-compatible specifications and shows how to integrate them into a comprehensive project that is enriched throughout the course.
Introduction
This module presents the foundations of the Jakarta EE model, its specifications, and its implementations (application servers, Quarkus). It positions Jakarta EE as the answer to common issues in complex backend projects: robustness, scalability, and maintainability. It also covers Eclipse MicroProfile as a modern complement to the standard.
⦁ Reminder of good design practices.
⦁ Jakarta EE: a set of APIs as a response to backend application issues.
⦁ From Java EE to Jakarta EE: the transition to the Eclipse Foundation.
⦁ Eclipse Microprofile as extensions to the Jakarta EE APIs.
⦁ Presentation of runtime and development environments.
Loose coupling with Jakarta CDI, Jakarta Interceptors, and EJB
This module covers dependency injection, interceptors, and application events via Jakarta CDI. It demonstrates the potential enhancements offered by Enterprise Java Beans (EJB), particularly for distributed exposure (remoting).
⦁ Bean declaration and lifecycle.
⦁ Dependency injection.
⦁ Interceptors.
⦁ Event publishing.
⦁ EJB as an extension to CDI.
Practical application: structuring a layered application with CDI and exposure via EJB.
Data access and transactions with Jakarta Persistence
This module covers persistence management with the Jakarta Persistence API, object-relational mapping, state persistence, entity management, and transactional demarcation.
⦁ Data access: introduction, reminders, best practices.
⦁ Mapping between the data model and the object model.
⦁ Create, read, update, and delete operations with EntityManager.
⦁ Entity states: attached, detached, transient.
⦁ Lazy loading.
⦁ Queries with the JPQL language.
Practical application: declaring a mapping, performing CRUD operations with EntityManager, transactional demarcation.
Publishing and receiving messages with Jakarta Messaging
This module introduces the JMS messaging model: message concepts, point-to-point or publish-subscribe exchanges, JMS client injection, and event bean processing.
⦁ Presentation of concepts.
⦁ Message types and their structure.
⦁ Destinations (Topic and Queue).
⦁ Sending messages with JMSContext.
⦁ Receiving messages with message-driven beans.
Practical application: applying the publish/subscribe paradigm with JMSContext and message-driven beans.
Creating user interfaces with Jakarta Faces
This module introduces Jakarta Faces for creating server interfaces: lifecycle, view management (JSF-EL), validation, and internationalization. It enables the creation of a server-side user interface that is fully integrated with the application.
⦁ The model and its lifecycle.
⦁ Views and access to the model with JSF-EL.
⦁ Internationalization.
⦁ Validation.
⦁ Exception management.
Practical application: creating a frontend to expose the previously developed backend application.
Creating a REST API with Jakarta RESTful WebServices
This module presents the structure of REST APIs via Jakarta RESTful Web Services and introduces best practices for resource-centric design.
⦁ Best practices for designing a REST API.
⦁ Writing an endpoint.
⦁ Managing and routing requests.
⦁ Input data validation.
⦁ Providers for applying cross-cutting processing.
Practical application: creating a REST API to expose the previously developed application.
Quarkus as an alternative to the application server
This module introduces Quarkus as an optimized runtime environment for Jakarta EE. It explores the concepts of Ahead-Of-Time (AOT) compilation, embedded server, and containerized delivery.
⦁ Presentation of the 12-factor app methodology.
⦁ The embedded web server.
⦁ AOT compilation: definition, advantages, and limitations.
⦁ Delivery in the form of an OCI image.
Practical application: revisiting the previously developed project to turn it into a standalone application.
Pedagogical details
Training architecture
• Explanation, for each concept, of the problem it aims to solve. • Practical application of a concept immediately after it has been presented. • Validation of each step by performing unit tests. • "Common thread" exercise to obtain a complete application at the end of the course. • Multiple-choice questions at the end of each chapter to ensure knowledge acquisition.
Type of training
Private or personalized training
If you have more than 8 people to sign up for a particular course, it can be delivered as a private session right at your offices. Contact us for more details.
Request a quotePrivate or personalized training
If you have more than 8 people to sign up for a particular course, it can be delivered as a private session right at your offices. Contact us for more details.
Request a quote