Giới thiệu về Jakarta EE


Ngày nay, chúng ta sẽ thường làm việc với Spring Boot và Spring ecosystem, nhưng ắt hẳn ít nhiều các bạn cũng đã nghe về Java EE hay Jakarta EE. Vậy Java EE hay Jakarta EE là gì? Chúng ta hãy cùng nhau tìm hiểu trong bài viết này, các bạn nhé!

Điều đầu tiên mà các bạn cần phải biết đó là Jakarta EE là tên được đổi từ tên Java EE. Jakarta EE là tập hợp các specification, được định nghĩa để phục vụ cho các ứng dụng doanh nghiệp.

Nói về lịch sử của Jakarta EE một xíu thì:

  • Jakarta EE được bắt đầu phát triển với tên gọi là J2EE từ năm 1999 bởi Sun Microsystems, sau đó được đổi tên thành Java EE từ năm 2006.
  • Ngày 27/1/2010, Oracle hoàn thành việc mua lại Sun Microsystems và đến năm 2017 thì Oracle chuyển giao Java EE lại cho Eclipse Foundation.
  • Từ tháng 3/2018 thì Eclipse Foundation đổi tên Java EE thành Jakarta EE và tháng 9/2019, Jakarta EE 8 được release, fully compatible với Java EE 8.
  • Trước 11/2020 thì các package của ứng dụng Jakarta EE sẽ bắt đầu với javax.*. Từ 11/2020 với Jakarta EE 9 release, các package này được đổi thành jakarta.*, các bạn nhé!

Các specification của Jakarta EE bao gồm các module, ví dụ như sau:

  • CDI (Dependency Injection)
  • JPA (Persistence)
  • Servlet
  • RESTful Web Services (JAX-RS)
  • Bean Validation
  • JSON-B
  • JSON-P
  • Messaging (JMS)
  • Security

giúp chúng ta có thể hiện thực các ứng dụng web, thao tác với database, gửi và nhận các message với message queue, authentication và authorization người dùng.

Vì nó là các specification nên sẽ cần các implementation và để chạy các ứng dụng Jakarta EE, chúng ta sẽ cần sử dụng các application server, phổ biến mà mình có thể liệt kê ra ở đây là:

Các server runtime khác mà có thể các bạn đã biết như Tomcat hay Jetty thì chúng không fully support cho Jakarta EE, các bạn nhé!

Jakarta EE chia ra 3 biến thể là:

  • Jakarta EE Core Profile bao gồm RESTful Web Services, CDI Lite, JSON-P/B, Interceptors
  • Jakarta EE Web Profile bao gồm tất cả các Core Specs + Servlet, Pages, Faces, Persistence (JPA), Transactions
  • Jakarta EE Platform thì là full technologies, bao gồm tất cả các Web Specs + Enterprise Beans (EJB), Mail, Messaging (JMS), Batch.

Tùy theo nhu cầu thì chúng ta có thể sử dụng các biến thể cho phù hợp.

Dưới đây là một số advantages và disadvantages của Jakarta EE nhé các bạn:

Advantages

  • Standardized APIs: Jakarta EE định nghĩa các standard APIs thông qua specification. Ứng dụng của các bạn không phụ thuộc vào một vendor implementation. Cùng một code, các bạn có thể deploy sử dụng nhiều application server khác nhau.
  • Mature enterprise ecosystem: Jakarta EE không phải là một cái gì đó mới mẻ. Nó được phát triển từ Java EE, cái mà đã được sử dụng trong các ứng dụng doanh nghiệp qua rất nhiều năm. Nó cover hết tất cả các common requirements của các ứng dụng doanh nghiệp. Thay vì chúng ta phải chọn các thư viện, framework cho từng nhu cầu khác nhau, thì chúng ta chỉ cần sử dụng Jakarta EE để hiện thực các nhu cầu này.

Disadvantages:

  • Smaller community than Spring: so với Spring ecosystem thì Jakarta EE không có nhiều tài liệu, tutorial, community events. Cho những người mới thì Spring Framework có vẻ sẽ dễ tiếp cận hơn.
  • Some application servers are complex: Jakarta EE định nghĩa specification, nhưng các bạn cũng cần phải hiểu runtime. Cho từng application server, các bạn cũng phải nắm được làm thế nào để cấu hình datasource, server configuration, deployment, các modules và server administration. Đối với Spring Boot thì chúng ta chỉ cần chạy command java -jar là có thể chạy ứng dụng lên rồi.

Latest version của Jakarta EE là Jakarta EE 11, các bạn nhé!

Add Comment