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

Các thành phần trong file module-info.java Java 9

Module là đơn vị ứng dụng độc lập, đại diện cho một chức năng đơn lẻ. Module chứa 3 thành phần cốt lõi:

  • Name: Định danh duy nhất.
  • Dependencies: Các module khác mà module này phụ thuộc.
  • Exported packages: Package mở ra cho module khác sử dụng.

Khai báo module qua file module-info.java tại root source code.

Template module-info.java

module <module-name> {
    requires <module-name1>;
    requires <module-name2>;
    ...
    exports <package-name1>;
    exports <package-name2>;
    ...
    exports <package-name> to <module-name>;
}

Chi tiết các thành phần

Thành phầnTừ khóaMô tả
Namemodule nameĐịnh danh duy nhất, bắt buộc. Hệ thống module nhận diện bằng tên này.
DependenciesrequiresKhai báo phụ thuộc module khác. Mỗi module phụ thuộc một dòng requires. Module java.base có sẵn ngầm, không cần requires.
Exported packagesexportsXuất khẩu package để module khác dùng. Mỗi package một dòng exports.
Qualified exportexports ... toXuất khẩu package chỉ cho module cụ thể (giới hạn phạm vi).

Ví dụ thực tế

module com.tutorialspoint.app {
    // Phụ thuộc module services
    requires com.tutorialspoint.services;
    
    // Phụ thuộc transitive (tự động truyền cho caller)
    requires transitive java.logging;
    
    // Xuất khẩu package util công khai
    exports com.tutorialspoint.app.util;
    
    // Xuất khẩu package internal chỉ cho module cụ thể
    exports com.tutorialspoint.app.internal to com.tutorialspoint.trusted;
    
    // Sử dụng service
    uses com.tutorialspoint.spi.MyService;
    
    // Cung cấp triển khai service
    provides com.tutorialspoint.spi.MyService with com.tutorialspoint.impl.MyServiceImpl;
    
    // Mở package cho reflection
    opens com.tutorialspoint.app.model;
}

Module java.base

Module nền tảng (java.base) chứa các package cơ bản: java.lang, java.util, java.io, java.nio... Mọi module đều requires java.base ngầm.

File module-info.java là "hợp đồng" của module – định nghĩa ranh giới, phụ thuộc, API công khai.