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 для обмена данными.

