Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Công dụng của mệnh đề requires trong file module-info Java 9?

Module là khái niệm quan trọng giới thiệu trong Java 9. Dùng khái niệm này chia code thành các thành phần nhỏ gọi là module. Mỗi module có trách nhiệm riêng và khai báo phụ thuộc module khác để hoạt động đúng. Để khai báo module, cần file module-info.java tại root source code.

Có vài loại mệnh đề requires trong file module-info:

1) requires <module>: Mặc định module không biết module khác có mặt trong module-path. Cần thêm dòng requires mỗi khi muốn truy cập module khác.

module com.tutorialspoint.gui {
    requires com.tutorialspoint.model;
    requires java.desktop;
}

2) requires transitive <module>: Trường hợp module com.tutorialspoint.model trả về interface type đã export của module com.core. Do đó module nào muốn dùng cũng phải requires com.core để truy cập class của module thứ hai tránh lỗi biên dịch. Java 9 cho phép từ khóa transitive chỉ ra tính bắc cầu này. Người dùng com.tutorialspoint.model có thể truy cập com.core cho phép thay đổi triển khai dễ dàng.

module com.tutorialspoint.model {
    requires transitive com.core;
}

3) requires static <module>: Từ khóa requires static đại diện cho khái niệm phụ thuộc tùy chọn như sau:

  • bắt buộc lúc biên dịch: lỗi biên dịch nếu module không có trong module-path lúc biên dịch.
  • tùy chọn lúc runtime: module không được tính trong giai đoạn kiểm tra khi khởi động ứng dụng. Ứng dụng chạy ngay cả khi module không có mặt.

Ví dụ: muốn đề xuất persistence dữ liệu ứng dụng, hoặc trong Oracle database hoặc H2 database.

module com.tutorialspoint.model {
    requires static ojdbc;
    requires static h2database.h2;
}