Robię Java SE od kilku lat i przechodzę do Java EE. Jednak mam pewne problemy ze zrozumieniem niektórych aspektów Java EE.
Czy Java EE to tylko specyfikacja? Co mam na myśli to: czy EJB Java EE?
Czy EJB / Spring to różne implementacje Java EE?
Przykro mi, że pytam, ale mam pewne trudności ze zrozumieniem, czym jest Java EE.
Czy ktoś mógłby wyjaśnić, czym jest Java EE? A EJB?
java
jakarta-ee
ejb
Frank Zimmer
źródło
źródło
Odpowiedzi:
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 jakorg.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ż:
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ż:
źródło
Java Enterprise Edition (Java EE) to ogólna specyfikacja, która odwołuje się do wielu innych, bardziej szczegółowych specyfikacji, z których jedną z ważniejszych jest Enterprise JavaBeans (EJB).
Przeczytaj to - wyjaśnia różnicę między Java EE i Spring
Dzięki...
źródło
Źródło - Java 2 Platform, Enterprise Edition (J2EE) definiuje standard tworzenia wielowarstwowych aplikacji korporacyjnych opartych na komponentach. J2EE upraszcza tworzenie aplikacji korporacyjnych, które są przenośne, skalowalne i łatwo integrują się ze starszymi aplikacjami i danymi.
Źródło - technologia Enterprise JavaBeans (EJB) to architektura komponentów po stronie serwera dla platformy Java Platform, Enterprise Edition (Java EE). Technologia EJB umożliwia szybkie i uproszczone tworzenie rozproszonych, transakcyjnych, bezpiecznych i przenośnych aplikacji opartych na technologii Java.
Java EE to specyfikacja.
EJB to architektura komponentów po stronie serwera dla Java EE
źródło
Mówiąc prościej - JavaEE to platforma.
Składa się z wielu specyfikacji, które są tylko interfejsami API. Konkretne implementacje tych interfejsów API to tak zwane „implementacje referencyjne”
EJB to Enterprise Java Beans
źródło