Почему Spring Bean может работать в контейнере сервлетов Tomcat, а EJB - нет? - PullRequest
1 голос
/ 29 марта 2019

Многие веб-ресурсы говорят, что Spring Bean похож на EJB. Компонент Spring также как EJB может определять логику через @Component, @Bean и @ Service.

Но EJB нельзя запускать в контейнере сервлета, как Tomcat.

В чем ключевое отличие EJB от Spring Beans?

1 Ответ

2 голосов
/ 29 марта 2019

Дело не в том, в чем разница между Spring bean и EJB, а в том, как управляется .

Простые EJBeans или Spring bean-компоненты не имеют никакой особой магии или функциональности.,Связанные функциональные возможности реализованы в среде, в которой выполняются bean-компоненты.

Когда вы запускаете приложение Spring в Tomcat, вы фактически запускаете кучу вещей из среды Spring, которая заставляет Spring bean-компоненты работать, поэтому не только bean-компоненты, но и множество другого кодаКроме того, это обеспечивает автоматическое подключение сервисов, компонентов и т. д.

Однако, когда вы реализуете JavaEE с EJB, все, что вы развертываете, состоит только из вашего бизнес-кода и bean-компонентов, а не чего-то вроде Spring с также включена логика управления .

Итак, EJB / JavaEE, вам нужно отдельно управлять этим инструментом, и поэтому простого Tomcat недостаточно для EJB.Вам необходим J2EE-контейнер , в котором вы, например, запускаете свои EJB-компоненты - TomEE , который является расширением, имеющим OpenEJB с Tomcat, или просматриваете список Сертифицированных ссылочных сред выполнения (примерно в середине википейджа за ссылкой).

См. также это и это связано более или менее.

...