温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java模块有哪些类型

发布时间:2026-09-19 05:38:17 来源:亿速云 阅读:99 作者:小樊 栏目:编程语言

在 Java 里,“模块(Module)”这个词在不同语境下含义不同。通常大家问“Java 模块有哪些类型”,主要指 Java 9 引入的模块系统(JPMS,Java Platform Module System)中的模块类型,也可能泛指 Java 生态中的“模块/组件类型”。下面分层次说明。


一、Java 9 模块系统(JPMS)中的模块类型

在 module-info.java 体系中,模块可以按来源和用途分为以下几类:

1. 平台模块(Platform Modules)

由 JDK 自身提供的模块,例如:

  • java.base
  • java.sql
  • java.xml
  • java.logging

特点:

  • JDK 自带
  • 不可修改
  • 所有模块默认依赖 java.base

查看方式:

java --list-modules

2. 应用模块(Application Modules)

开发者自己写的业务模块,例如:

module com.example.order {
    requires com.example.common;
    exports com.example.order.api;
}

特点:

  • 有 module-info.java
  • 明确声明依赖和导出包

3. 自动模块(Automatic Modules)

当你把一个没有 module-info.java 的旧 Jar 包放到模块路径(--module-path)时,Java 会自动把它变成模块。

特点:

  • 模块名由 Jar 名推断(或 Automatic-Module-Name)
  • 默认导出所有包
  • 依赖所有其他模块

示例:

--module-path lib/old-lib.jar

4. 未命名模块(Unnamed Module)

当类在 classpath(而不是 module path) 上运行时:

特点:

  • 没有模块名
  • 可以访问所有 classpath 类
  • 不能 requires 其他模块
  • 常用于兼容旧项目

5. 聚合模块(Aggregator Module)

本身不包含代码,只用来聚合其他模块:

module com.example.all {
    requires com.example.order;
    requires com.example.user;
}

常用于:

  • 统一启动入口
  • 简化部署

二、从“工程结构”角度看 Java 模块

在 Maven / Gradle 多模块项目中,常见类型:

1. 父模块(Parent Module)

  • pom.xml 中 packaging=pom
  • 管理子模块

2. 子模块(Child Module)

  • 具体业务或功能模块
  • 如 user-service、common-util

3. 基础模块(Common Module)

  • 工具类、常量、公共依赖

4. Web 模块 / Service 模块

  • spring-boot 应用
  • jar 或 war

三、从“运行形态”看

类型 说明
普通模块 标准 JPMS 模块
自动模块 兼容旧 Jar
未命名模块 classpath 模式
平台模块 JDK 内置

四、一句话总结

Java 模块类型主要包括:平台模块、应用模块、自动模块、未命名模块和聚合模块;在工程中也可分为父模块、子模块、公共模块等。

如果你是指 Spring 模块、Java EE 模块、或者 IDE 中的 module 概念,可以告诉我,我可以进一步细分讲解。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手