Java EE - это просто спецификация? Я имею в виду: EJB Java EE?
Java EE действительно абстрактная спецификация. Любой желающий может разработать и предоставить рабочую реализацию спецификации. В конкретных реализациях являются так называемые серверы приложений, как WildFly , TomEE , GlassFish , Свободы , WebLogic и т.д. Есть также контейнеры сервлетов , которые реализуют только JSP / Servlet часть огромного Java EE API, такие как Tomcat , Jetty , и т.п.
Мы, разработчики Java EE, следует писать код , использующий спецификацию (т.е. импортировать только javax.*
классы в нашем коде вместо конкретной реализации классов , таких как org.jboss.wildfly.*
, com.sun.glassfish.*
и т.д.) , и тогда мы сможем запустить наш код на любой реализации (таким образом, на любой сервер приложений). Если вы знакомы с JDBC, это в основном та же концепция, что и как работают драйверы JDBC. Смотри также ao. Проще говоря, что такое фабрика?
Загрузки Java EE SDK от Oracle.com содержит в основном на GlassFish сервер вместе кучу документации и примеров и , возможно , также в среде IDE NetBeans. Вам это не нужно, если вы хотите другой сервер и / или IDE.
EJB является частью спецификации Java EE. Смотри, это в API Java EE . Полноценные серверы приложений Java EE поддерживают его "из коробки", а простые контейнеры JSP / Servlet - нет.
Смотрите также:
Являются ли EJB / Spring различными реализациями Java EE?
Нет, как уже говорилось, EJB является частью Java EE. Spring - это автономный фреймворк, который заменяет и улучшает многие части Java EE. Spring не обязательно требует Java EE для запуска. Контейнер для сервлетов, такой как Tomcat, уже достаточен. Проще говоря, Spring является конкурентом Java EE. Например, Spring (автономный) конкурирует с EJB / JTA, Spring MVC конкурирует с JSF / JAX-RS, Spring DI / IoC / AOP конкурирует с CDI, Spring Security конкурирует с JAAS / JASPIC и т. Д.
В прежние времена J2EE / EJB2 API EJB2 было ужасно реализовать и поддерживать. Spring был тогда намного лучшей альтернативой EJB2. Но начиная с EJB3 (Java EE 5), EJB API был значительно улучшен на основе уроков, извлеченных из Spring. Начиная с CDI (Java EE 6), на самом деле нет причин снова рассматривать другую инфраструктуру, такую как Spring, чтобы упростить разработчикам разработку, среди прочего, уровня обслуживания.
Только когда вы используете пустой контейнер сервлетов, такой как Tomcat, и не можете перейти на сервер Java EE, Spring становится более привлекательным, поскольку его проще установить на Tomcat. Невозможно установить, например, контейнер EJB на Tomcat без изменения самого сервера, вы, по сути, будете заново изобретать TomEE.
Смотрите также: