Мне недавно дали проект для работы, который включает в себя написание веб-приложения.Я никогда не делал Java EE раньше.Многие ресурсы в Интернете устарели, и у меня возникают проблемы с выяснением различий между текущими стандартами и технологиями Java . .
Изначально я думал, что мне действительно нужен EJB 3.1из-за внедрения зависимостей, JPA, управления сеансами и веб-сервисов.Я начал экспериментировать со Glassfish, но мне сказали, что мы должны написать это в Tomcat.Поэтому я пытался выяснить, что мне нужно, а также что и как поместить в Tomcat, чтобы туда попасть.Я начал сомневаться, нужен ли мне вообще EJB.
Я хочу использовать JFS, я думаю, для архитектуры MVC.Узнав об этом, я столкнулся как с ManagedBeans, так и с CDI, который, по мнению некоторых, делает прежнее устаревшее, а также, кажется, обеспечивает все компоненты внедрения зависимостей, которые я хочу включить модульное тестирование.Я также понял, что могу получить JPA за пределами EJB в форме Hibernate и, возможно, нескольких других.Кроме того, кажется, что веб-сервисы, которые я не знаю, в чем я нуждаюсь, в любом случае, имеют форму другого стандарта, который я сейчас не могу назвать названием, и его также можно установить независимо.
МойОсновной проблемой здесь является управление сессиями и состояние.Мне кажется, что EJB остается только предоставить @ Stateless / @ Stateful и @ Local / @ Remote.Тем не менее, насколько я понимаю, часть этого уже существует в форме управления сеансами в контейнере сервлета ... но я не знаю, сколько или какие основные различия мне необходимо учитывать, чтобы принять решениеесли я вообще нуждаюсь в этих вещах.
Итак, мой вопрос: каковы основные, существенные различия, которые мне нужно знать, чтобы решить, стоит ли рассматривать EJB или мне достаточно в формедругие библиотеки и технологии?Я был в Google и Usenet и не смог найти эту информацию нигде.
Просто подумал о другом.Насколько я понимаю, аннотация bean-компонента @Stateful обеспечивает сохранение потокового состояния.Я, вероятно, не собираюсь напрямую использовать потоки, но я знаю, что Java часто делает это за кулисами, и подозреваю, что EE особенно так.Когда мне нужно сохранить состояние, я не хочу иметь дело с потоками, если это уже есть.