JavaRush /Blog Java /Random-VI /Nghỉ giải lao #119. Giới thiệu về Phiên bản Java Enterpri...

Nghỉ giải lao #119. Giới thiệu về Phiên bản Java Enterprise (Java EE)

Xuất bản trong nhóm
Nguồn: Dev.to Java Enterprise Edition (Java EE) là một bộ đặc tả và tài liệu dành cho ngôn ngữ Java mô tả kiến ​​trúc nền tảng máy chủ để giải quyết các vấn đề của các doanh nghiệp vừa và lớn. Nghỉ giải lao #118.  Giới thiệu về Java Enterprise Edition (Java EE) - 1Khi học Java EE bạn sẽ gặp các thuật ngữ sau:
  • Máy chủ ứng dụng là một triển khai cụ thể của các đặc tả Java EE trừu tượng. Ví dụ: Máy chủ Payara (Glassfish), IBM OpenLiberty và JBoss Wildfly.

  • Yêu cầu đặc tả Java (JSR) là một yêu cầu chính thức tới cộng đồng Java để bổ sung và cải tiến công nghệ. Nó là cơ quan chuẩn hóa các API trên nền tảng công nghệ Java và được sử dụng để nhóm các API thành các khối, chẳng hạn như JAX-RS (Java API cho các dịch vụ web RESTful). Đối với mọi JSR, luôn có cách triển khai tham chiếu mặc định.

  • Việc triển khai tham chiếu là việc triển khai/triển khai cụ thể của một JSR trừu tượng. Ví dụ: việc triển khai tham chiếu cho JAX-RS được gọi là Jersey. Bản thân Java EE là một JSR. Do đó, máy chủ ứng dụng là một tập hợp các triển khai tham chiếu JSR Java EE khác nhau. Java EE là JSR 366 và một trong những triển khai tham chiếu của nó là Glassfish 5.

  • Jakarta EE là tên mới của Java EE bắt đầu từ năm 2018. Hiện tại, Oracle đã chuyển giao nền tảng Java dưới sự quản lý của Eclipse Foundation .

Cơ bản về JavaEE

Có ba API chính trong Java EE:
  1. API bền vững Java (JPA). Nó chịu trách nhiệm lưu trữ và truy xuất thông tin từ cơ sở dữ liệu quan hệ, có thể được mở rộng để hoạt động với cơ sở dữ liệu NoSQL. Đây là lớp dữ liệu trong ứng dụng.

  2. Nội dung bối cảnh và phụ thuộc (API CDI). Đó là một cách tiêu chuẩn hóa để giảm sự ghép nối trong các ứng dụng. Nó quản lý các tương tác thành phần khác nhau để đảm bảo tách rời miễn phí.

  3. API Java cho Dịch vụ web RESTful (JAX-RS). Nó cung cấp tài nguyên qua HTTP dưới dạng dịch vụ web.

API chèn bối cảnh và phụ thuộc

Nội dung phụ thuộc là một hình thức kiểm soát đảo ngược đặc biệt (một chiến lược phần mềm trong đó các thành phần riêng lẻ nhận được phần phụ thuộc của chúng). Điều này loại bỏ sự phụ thuộc trong ứng dụng để tạo ra các thành phần có khả năng ghép nối thấp.

Đặc điểm của CDI

  • Tính năng chèn phụ thuộc (Typesafe) cho phép bạn khai báo các phụ thuộc vào các loại để trình biên dịch bắt lỗi khi chạy.

  • Bối cảnh vòng đời là khả năng gắn kết các tương tác giữa vòng đời và thành phần trạng thái với các thành phần vòng đời được xác định rõ ràng nhưng có thể mở rộng.

  • Bộ chặn cho phép bạn chặn các yêu cầu truy cập vào một phương thức cụ thể.

  • Sự kiện là một cách để phát triển các ứng dụng có tính tách rời cao. Các sự kiện có thể được kích hoạt trong khi phương thức Observer đang lắng nghe các sự kiện được kích hoạt.

  • Giao diện nhà cung cấp dịch vụ (SPI) là một tập hợp các kỹ thuật, API và giao diện có thể được sử dụng làm tiện ích mở rộng, chẳng hạn như trong thư viện Apache.

Một số khái niệm API CDI:

  • CDI Bean Discovery là một cơ chế trong đó khung chèn phụ thuộc phân tích cú pháp và phát hiện các hạt để kiểm soát cách các hạt được phát hiện theo mặc định, tức là các hạt có chú thích như @Annotated. Có ba loại chế độ khám phá đậu: TẤT CẢ (bao gồm cả đậu không được chú thích), ANNOTATED và NONE.

  • Bộ chứa CDI là một phương thức xuất xưởng trong đó các lớp Java ra vào với chức năng và khả năng của chúng. Đây là ứng dụng quản lý các hạt đậu.

  • Bean và các trường hợp theo ngữ cảnh. Bean là một mẫu mà nhà phát triển tạo ra. Phiên bản theo ngữ cảnh là phiên bản của Bean được tạo và quản lý bởi bộ chứa CDI.

API kiên trì Java

JPA được sử dụng để ánh xạ các đối tượng vào các bảng cơ sở dữ liệu quan hệ. API Persistence API tuân theo các nguyên tắc của bản tuyên ngôn ORM. Tệp kê khai ORM (Tệp kê khai ánh xạ quan hệ đối tượng):
  • Đối tượng, không phải bảng: Nhà phát triển viết đối tượng chứ không phải bảng.

  • Thuận tiện, không thiếu hiểu biết: ORM phải thuận tiện. Các nhà phát triển nên có kiến ​​thức tối thiểu về cơ sở dữ liệu quan hệ. ORM không phải là một cách để che giấu sự thiếu hiểu biết mà là một sự tiện lợi.

  • Không phô trương và minh bạch: ORM phải giúp các nhà phát triển có thể kiểm soát những gì có trong cơ sở dữ liệu và có toàn quyền kiểm soát những gì được lưu. Dữ liệu kế thừa, đối tượng mới: ORM sẽ cho phép bạn tạo các đối tượng mới từ dữ liệu kế thừa, nghĩa là xây dựng lại cơ sở dữ liệu kế thừa thành các đối tượng Java.

  • Đủ, nhưng không quá nhiều: ORM sẽ cung cấp tất cả các công cụ để giải quyết các vấn đề thường gặp do không khớp trở kháng (thuật ngữ dùng để chỉ các vấn đề phát sinh do sự khác biệt giữa mô hình cơ sở dữ liệu và ngôn ngữ lập trình). ORM không nên quá nặng.

  • Tính cục bộ và tính di động: Dữ liệu có tính cục bộ nhưng trạng thái liên tục của ứng dụng phải có khả năng di chuyển đến các phần khác nhau của ứng dụng.

  • API tiêu chuẩn, triển khai có thể cắm: Dựa vào API tiêu chuẩn nhưng có thể thay đổi cách triển khai nếu cần.

Một số khái niệm quan trọng của JPA: Thực thể JPA
  • Thành phần mô-đun nhất của các đối tượng JPA là đối tượng Java cũ (POJO). Mỗi đối tượng phải có một mã định danh duy nhất.

  • Các thực thể JPA thường sử dụng các chú thích như @MappedSuperClass, cho phép sử dụng các siêu lớp chứa các trường thực thể chung. Chú thích @AttributionOverride được sử dụng để ghi đè các thực thể siêu lớp. @Column được sử dụng để định cấu hình ánh xạ cơ sở dữ liệu. Chú thích @Transient có thể được sử dụng cho các trường trong một lớp thực thể không được ánh xạ tới cơ sở dữ liệu.

  • Loại truy cập là quá trình mà nhà cung cấp dịch vụ lưu trữ lâu dài truy cập vào các trạng thái trong một thực thể. Truy cập trường xảy ra khi nhà cung cấp truy cập trực tiếp vào các trường của một lớp thông qua sự phản chiếu. Quyền truy cập thuộc tính xảy ra khi các phương thức thuộc tính Java Bean được sử dụng để truy cập các trạng thái, nghĩa là sử dụng getters và setters. Để sử dụng quyền truy cập thuộc tính, getter phải được chú thích bằng @Id. Loại truy cập hỗn hợp sử dụng quyền truy cập vào cả trường và thuộc tính trong cùng một lớp thực thể bằng cách sử dụng chú thích @Access.

API Java cho các dịch vụ web RESTful

Hạn chế của kiến ​​trúc REST:
  1. Máy khách và máy chủ độc lập với nhau.

  2. Không trạng thái: Mỗi yêu cầu riêng lẻ đến máy chủ đều có tính tự chủ và duy nhất. Máy chủ không đưa ra bất kỳ giả định nào từ yêu cầu trước đó.

  3. Khả năng lưu trữ: Hệ thống phải hỗ trợ bộ nhớ đệm ở các cấp độ khác nhau để cải thiện hiệu suất và khả năng mở rộng.

  4. Giao diện hợp nhất có nghĩa là máy khách phải có giao diện hợp nhất chung để truy cập tài nguyên trên máy chủ, cũng như tương tác với các tài nguyên trên máy chủ. Hệ thống nhiều tầng: Máy chủ có thể được triển khai ở nhiều lớp khác nhau theo cách mà máy khách không phải lo lắng về hệ thống nhiều tầng, chẳng hạn như máy chủ hỗ trợ cân bằng tải.

Một số khái niệm chung liên quan đến JAX-RS:
  • Phương thức HTTP GET: yêu cầu một hoặc nhiều tài nguyên. Phương thức yêu cầu GET là bình thường, có nghĩa là việc thực hiện cùng một yêu cầu cho phương thức đó nhiều lần sẽ không làm thay đổi trạng thái của tài nguyên hoặc dữ liệu trên máy chủ.

  • Phương thức HTTP POST: Yêu cầu POST được sử dụng để tạo tài nguyên mới trên máy chủ. Điều này khiến tập dữ liệu trên máy chủ thay đổi. POST thường có phần thân trong đó tải trọng hoặc bất cứ thứ gì chúng ta muốn tạo trên máy chủ sẽ được xuất bản hoặc đính kèm.

  • Phương thức HTTP PUT: Được sử dụng theo ngữ nghĩa để cập nhật tài nguyên trên máy chủ.

  • Phương thức HTTP DELETE: Dùng để xóa tài nguyên trên máy chủ.

  • Loại nội dung. Có một số loại nội dung có thể được sử dụng và tạo bằng các phương thức truy vấn: XML, CSV, EXCEL, TEXT và JSON.

  • JAX-RS có khái niệm viết nội dung thư. Đây là các cấu trúc API được sử dụng để chuyển đổi các kiểu Java thành kiểu mà máy khách mong đợi. Chú thích @Produces có thể được sử dụng để chỉ định loại mà phản hồi của đối tượng Java được chuyển đổi.

  • Chú thích @Consumes cho bộ thực thi JAX-RS biết loại nội dung mà một phương thức tài nguyên nhất định đang tiêu thụ. Sau đó, thời gian chạy JAX-RS chuyển đổi nội dung JSON được truyền dưới dạng tải trọng thành một đối tượng Java có kiểu giống với tham số phương thức.

  • Trình ánh xạ ngoại lệ JAX-RS: Một cấu trúc API được sử dụng để ánh xạ các ngoại lệ cho các phản hồi HTTP. Chú thích @Provider được sử dụng để đăng ký một trình phân giải ngoại lệ theo chương trình với thời gian chạy JAX-RS.

Đây là phần giới thiệu rất đơn giản về Java EE. Để xây dựng các ứng dụng web bằng Java EE, bạn cần tìm hiểu sâu hơn về từng API chính.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION