Что такое Jakarta EE?

«Что такое Jakarta EE?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Jakarta EE (ранее Java Platform, Enterprise Edition — Java EE) — это набор стандартных спецификаций (API) для создания масштабируемых, надежных и безопасных серверных enterprise-приложений на языке Java.

Ключевые особенности:

  • Стандарт, а не реализация: Jakarta EE определяет API, а реализации предоставляются серверами приложений (WildFly, TomEE, Payara, OpenLiberty) и фреймворками.
  • Набор технологий: Включает спецификации для различных задач:
    • Веб-слой: Jakarta Servlet, Jakarta Faces, Jakarta RESTful Web Services.
    • Бизнес-логика: Jakarta Enterprise Beans (EJB), Jakarta Contexts and Dependency Injection (CDI).
    • Данные: Jakarta Persistence (JPA), Jakarta Transactions.
    • Безопасность: Jakarta Security.
  • Открытое развитие: После передачи от Oracle проект теперь развивается под управлением Eclipse Foundation.

Пример простого REST-сервиса с использованием Jakarta EE (Jakarta REST):

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

@Path("/hello") // Базовый путь к ресурсу
public class HelloResource {

    @GET // Обрабатывает HTTP GET запросы
    @Produces(MediaType.TEXT_PLAIN) // Определяет тип ответа
    public String sayHello() {
        return "Hello from Jakarta EE!";
    }
}

Сравнение с другими технологиями:

  • Spring Framework: Популярный фреймворк, который также реализует многие паттерны enterprise-разработки, но не является формальным стандартом.
  • Микросервисы: Современные версии Jakarta EE (9+) ориентированы на модульность и облачную разработку, что позволяет создавать микросервисные архитектуры.

Jakarta EE используется для построения крупных корпоративных систем, таких как банковские приложения, системы управления цепочками поставок и внутренние порталы.