Java EE

Коротко

Набор спецификаций для корпоративных серверных приложений на Java: веб, REST, транзакции, очереди сообщений, безопасность и работа с базами данных.

Что такое «Java EE»

Платформа появилась в конце 1990-х под именем J2EE, позже была переименована в Java EE, а в 2017 году Oracle передала её фонду Eclipse. Там стандарт продолжил жизнь как Jakarta EE, и начиная с девятой версии пакеты сменили префикс javax.* на jakarta.*. Поэтому в старых проектах и статьях встречается одно название, в новых — другое, хотя речь об одной платформе.

Java EE — не программа, а набор договорённостей. Спецификации описывают, как должен работать, например, REST-сервис или менеджер транзакций, а реализуют их разные производители. Приложение, написанное по стандарту, можно перенести с одного сервера приложений на другой.

Из чего состоит платформа

  • Servlet — обработка HTTP-запросов, основа всего веба на Java.
  • JAX-RS (Jakarta RESTful Web Services) — REST API на аннотациях.
  • JPA (Jakarta Persistence) — работа с базой через объекты вместо SQL.
  • CDI — внедрение зависимостей, EJB — компоненты с транзакциями.
  • JMS — очереди сообщений, JTA — распределённые транзакции.

Пример REST-ресурса

@Path("/orders")
public class OrderResource {
    @Inject
    OrderService service;

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<Order> list() {
        return service.findAll();
    }
}

Класс отвечает на GET /orders списком заказов в JSON. Разбирать запрос, превращать объекты в JSON и подставлять сервис будет сервер приложений — разработчик описывает только смысл. Сам архитектурный стиль описан в статье про REST.

Серверы приложений и альтернативы

Полную платформу реализуют WildFly, GlassFish, Payara, Open Liberty. Apache Tomcat поддерживает только веб-часть — сервлеты и JSP, поэтому формально он контейнер сервлетов, а не полноценный сервер приложений. Основным конкурентом стандарта стал фреймворк Spring: он вырос как более лёгкая альтернатива тяжёлым ранним версиям J2EE, а со временем сам начал использовать многие спецификации, в том числе JPA. С сайтами на CMS Java EE пересекается в интеграциях: учётные и банковские системы крупных компаний нередко построены на этой платформе и предоставляют API для обмена данными.

Обновлено:

Все термины раздела «Backend»

Что будем искать? Например,Продвижение