Czy Java EE to tylko specyfikacja? Co mam na myśli to: czy EJB Java EE?
Java EE jest rzeczywiście abstrakcyjną specyfikacją. Każdy jest otwarty na opracowanie i zapewnienie działającej implementacji specyfikacji. Te konkretne implementacje są tak zwane serwery aplikacyjne, jak JBoss Application Server , TomEE , GlassFish , Liberty , WebLogic , itd Istnieją również serwletów pojemniki, które realizują tylko JSP / Servlet część ogromnego Java EE API, takich jak Tomcat , Jetty , itp.
My, programiści Java EE, należy napisać kod wykorzystujący specyfikacji (tj importować tylko javax.*
zajęcia w naszym kodzie zamiast klas konkretnej implementacji takich jak org.jboss.wildfly.*
, com.sun.glassfish.*
itp) i wtedy będziemy w stanie uruchomić naszego kodu na dowolnej implementacji (a więc, na dowolny Serwer aplikacji). Jeśli znasz JDBC, jest to w zasadzie ta sama koncepcja, co sposób działania sterowników JDBC. Zobacz także ao Najprościej mówiąc, czym jest fabryka?
Pakiet Java EE SDK do pobrania z Oracle.com zawiera w zasadzie serwer GlassFish wraz z całą dokumentacją i przykładami, a opcjonalnie także środowisko NetBeans IDE. Nie potrzebujesz go, jeśli chcesz mieć inny serwer i / lub IDE.
EJB jest częścią specyfikacji Java EE. Spójrz, jest w API Java EE . Pełnoprawne serwery aplikacji Java EE obsługują to od razu, ale proste kontenery JSP / Servlet nie.
Zobacz też:
Czy EJB / Spring to różne implementacje Java EE?
Nie, jak powiedziałem, EJB jest częścią Java EE. Spring to samodzielny framework, który zastępuje i ulepsza wiele części Java EE. Spring niekoniecznie wymaga do działania Java EE. Podstawowy kontener serwletów, taki jak Tomcat, jest już wystarczający. Mówiąc najprościej, Spring jest konkurentem Java EE. Np. „Spring” (samodzielny) konkuruje z EJB / JTA, Spring MVC konkuruje z JSF / JAX-RS, Spring DI / IoC / AOP konkuruje z CDI, Spring Security konkuruje z JAAS / JASPIC itp.
W dawnych czasach J2EE / EJB2 interfejs API EJB2 był okropny we wdrażaniu i utrzymywaniu. Wiosna była wtedy znacznie lepszą alternatywą dla EJB2. Ale od czasu EJB3 (Java EE 5) interfejs API EJB został znacznie ulepszony na podstawie wniosków wyciągniętych ze Springa. Od czasu CDI (Java EE 6) nie ma powodu, aby ponownie przyjrzeć się kolejnej platformie, takiej jak Spring, aby ułatwić programistom tworzenie m.in. warstwy usług.
Tylko wtedy, gdy używasz podstawowego kontenera serwletów, takiego jak Tomcat, i nie możesz przejść na serwer Java EE, Spring jest bardziej atrakcyjny, ponieważ łatwiej jest zainstalować Spring na Tomcat. Nie jest możliwe zainstalowanie np. Kontenera EJB na Tomcat bez modyfikowania samego serwera, po prostu wymyślałbyś TomEE na nowo.
Zobacz też: