DVamp1r3
@DVamp1r3
Java/PHP программист

Как устроено типовое Java EE приложение?

Хотелось бы почитать про архитектуру ee-приложений. По аналогии с веб-приложениями на .net, где приложение подключается к IIS, базовый класс Application, вокруг которого наворачивается уже все остальное (обработчики запросов, классы для ORM и т.д.).
  • Вопрос задан
  • 1494 просмотра
Решения вопроса 3
Rou1997
@Rou1997
База данных, ORM, обработчики запросов, интерфейс, используется фреймворк Spring.
Ответ написан
@void_phoenix
Обычно Java EE представляет собой набор компонентов, разворачиваемых на Java EE сервере.
Ответ на ваш вопрос - да и нет, сам сервер представляет средства для управления загруженными в него компонентами, так же как и вы можете запустить или остановить весь сервер целиком.
Важно понимать, что Java EE это набор спецификаций, реализуемых сервером. Если вам нужен REST - нет проблем. Определенным образом аннотируете классы, загружаете приложение на сервер и он заботится обо всем остальном, так как он реализует спецификацию Java EE. Нужна база данных - то же самое. Java EE - это просто стандарт, выбираете фреймворк - реализацию, определенным образом аннотируете классы и все происходит само.
"базовый класс Application" - такого, насколько я знаю (могу ошибаться) в Java EE нет. Каждый компонент, будь то веб сервис, слой взаимодействия с базой или что-то иное, управляется сервером через который уже можно управлять всем приложением. Но, если речь идет о Spring, который является главной альтернативой классическом EE, то там можно сделать главный класс - точку входа в приложение, плодить потоки, останавливать и т.д.
Ответ написан
Комментировать
jaxtr
@jaxtr
JavaEE/Spring-разработчик
Если интересно почитать про архитектуру, то советую почитать Изучаем Java EE 7 Э. Гонсалвес и официальную документацию.

Java EE определяет большое количество спецификаций для работы с различными технологиями, например для работы с БД - спецификация JPA (Java Persistence API), которая описывает стандартный ORM-фреймворк.

В Java EE приложение не обязательно должно быть веб-приложением. Классическое JEE-приложение разворачивается в сервере приложений, при помощи которого можно управлять жизненным циклом и настройками приложений. Сервер приложений сам находит классы, инстансы которых нужно создать. Application-класс для таких приложений не предусмотрен.

Но в последнее время, в виду популярности микросервисов, появилась возможность разрабатывать standalone-приложения на Java EE, вот в таких микросервисах нужен Application-класс.

Кроме Java EE для интерпрайза в Java-мире существует Spring.io с собственной экосистемой. Приложение на Spring может быть как обычным веб-приложением (с веб-профилем или с полным профилем Java EE), так и микросервисом с Application-классом (обычно Spring Boot, но можно и без него).

Но в любом случае вывод следующий: если приложение разворачивается сервере приложений или сервлет-контейнере, то сервер сам создаёт контекст приложения, который управляет жизненным циклом компонентов приложения. Если же приложение самостоятельное, то разработчик должен сам создать и запустить в Application-классе контекст приложения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы