Có phải Java EE chỉ là một đặc tả? Ý tôi là: EJB Java EE?
Java EE thực sự là một đặc tả trừu tượng . Bất kỳ ai cũng sẵn sàng để phát triển và cung cấp một triển khai làm việc của đặc tả. Các triển khai cụ thể là các máy chủ ứng dụng, như WildFly , TomEE , GlassFish , Liberty , WebLogic , v.v. Ngoài ra còn có các thùng chứa servlet chỉ thực hiện phần JSP / Servlet của API Java EE khổng lồ, như Tomcat , Jetty , Vân vân.
Chúng tôi, các nhà phát triển Java EE, nên viết mã sử dụng các đặc điểm kỹ thuật (ví dụ: nhập khẩu chỉ javax.*
lớp trong mã của chúng tôi thay vì các lớp học cụ thể thực hiện như org.jboss.wildfly.*
, com.sun.glassfish.*
, vv) và sau đó chúng tôi sẽ có thể chạy mã của chúng tôi trên bất kỳ thực hiện (do đó, trên bất kỳ máy chủ ứng dụng). Nếu bạn quen thuộc với JDBC, về cơ bản, đó là khái niệm giống như cách trình điều khiển JDBC hoạt động. Xem thêm áo dài Nói một cách đơn giản nhất, nhà máy là gì?
Các tải Java EE SDK từ Oracle.com chứa cơ bản máy chủ GlassFish cùng một loạt các tài liệu và các ví dụ và tùy chọn cũng NetBeans IDE. Bạn không cần nó nếu bạn muốn một máy chủ và / hoặc IDE khác.
EJB là một phần của đặc tả Java EE. Hãy nhìn xem, đó là trong API Java EE . Các máy chủ ứng dụng Java EE chính thức hỗ trợ nó ra khỏi hộp, nhưng các thùng chứa JSP / Servlet đơn giản thì không.
Xem thêm:
EJB / Spring có triển khai Java EE khác nhau không?
Không, như đã nói, EJB là một phần của Java EE. Spring là một khung độc lập thay thế và cải thiện nhiều phần của Java EE. Spring không nhất thiết yêu cầu Java EE để chạy. Một thùng chứa servlet xương trần như Tomcat là đủ. Nói một cách đơn giản, Spring là đối thủ cạnh tranh của Java EE. Ví dụ: "Spring" (độc lập) cạnh tranh EJB / JTA, Spring MVC cạnh tranh với JSF / JAX-RS, Spring DI / IoC / AOP cạnh tranh CDI, Spring Security cạnh tranh JAAS / JASPIC, v.v.
Quay trở lại thời J2EE / EJB2 cũ, API EJB2 rất tệ để thực hiện và duy trì. Mùa xuân sau đó là một sự thay thế tốt hơn nhiều so với EJB2. Nhưng kể từ EJB3 (Java EE 5), API EJB đã được cải thiện rất nhiều dựa trên các bài học rút ra từ Spring. Kể từ CDI (Java EE 6), thực sự không có lý do để xem xét lại một khung công tác khác như Spring để giúp các nhà phát triển dễ dàng hơn trong việc phát triển các lớp dịch vụ khác.
Chỉ khi bạn đang sử dụng một thùng chứa servlet xương cốt như Tomcat và không thể chuyển sang máy chủ Java EE, thì Spring mới hấp dẫn hơn khi cài đặt Spring trên Tomcat dễ dàng hơn. Không thể cài đặt, ví dụ như bộ chứa EJB trên Tomcat mà không sửa đổi máy chủ, về cơ bản bạn sẽ phát minh lại TomEE.
Xem thêm: