Nhiều lập trình viên Java khi sử dụng phiên bản mới của Spring 6 hoặc Spring Boot 3 đã gặp phải các gói có tiền tố jakarta. Khi đọc mã nguồn của công cụ quản lý quy trình làm việc mở Camunda, tôi cũng phát hiện ra sự xuất hiện rộng rãi của các gói jakarta.
assembly- Mã nguồn Java và các bài kiểm tra cho ứng dụng web Camunda dựa trên không gian tênjavax.assembly-jakarta- Mã nguồn Java và các bài kiểm tra cho ứng dụng web Camunda dựa trên không gian tênjakarta. Module này được tạo ra từ moduleassemblythông qua biến đổi mã.
Ngoài ra, nhiều người dùng Tomcat gặp vấn đề xung đột giữa các gói Jakarta.servlet và javax.servlet.
Lý Do Đổi Tên Từ Java EE sang Jakarta EE
Vào năm 2009, Oracle mua lại Sun Microsystems với mức giá 74 tỷ USD. Sự kết hợp này nhằm mục đích tích hợp các giải pháp phần cứng, hệ thống quản lý chuyên nghiệp và giải pháp ứng dụng vào một nền tảng thống nhất.
Vào năm 2018, Oracle quyết định chuyển giao Java EE cho Tổ chức Eclipse Foundation nhưng không cho phép sử dụng tên gọi Java. Eclipse chọn hai tên là "Jakarta EE" và "Enterprise Profile", cuối cùng là "Jakarta EE" được chấp nhận.
Từ Java EE sang Jakarta EE, không chỉ đơn thuần là thay đổi tên gọi mà còn liên quan đến việc phát triển của JDK và các kỹ thuật liên quan.
Tác Động Của Việc Đổi Tên Đến Phát Triển Phần Mềm
Spring Framework, một trong những framework phổ biến nhất trong cộng đồng Java, cũng đã thích ứng với sự thay đổi này. Spring 6 yêu cầu JDK 17 trở lên và sử dụng không gian tên jakarta thay vì javax.
Một số ví dụ về các gói đã được thay đổi:
@Inject,@PostConstruct,@PreDestroy, và@Resourcegiờ đây nằm trong góijakarta.annotation.- Các gói như
Jakarta Servlet 6.0,Jakarta Validation 3.0, v.v.
Ví dụ về sự thay đổi trong file POM:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
sau này trở thành:
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>4.0.2</version>
</dependency>
Tình Hình Hiện Tại Của Jakarta EE
Jakarta EE là nền tảng để xây dựng các hệ thống phân tán, dựa trên kiến trúc cloud-native. Phiên bản mới nhất là Jakarta EE 10.
Có nhiều công ty lớn như Fujitsu, IBM, Red Hat đang hỗ trợ phát triển Jakarta EE để giúp chuyển đổi các ứng dụng quan trọng sang môi trường đám mây.
Khi nâng cấp từ Java EE sang Jakarta EE, cần chú ý các vấn đề sau:
- Cập nhật tất cả các tham chiếu đến các gói cũ.
- Thay thế các chú thích cũ bằng chú thích tương thích.
- Ghi lại và sửa đổi các đoạn mã sử dụng các API bị loại bỏ.
Nhiều công cụ như Openrewrite, WindUp và Eclipse Transformer có thể giúp tự động hóa quá trình nâng cấp.