当前位置: 首页 > news >正文

一个网站建设需要多少钱有没一些网站只做临床药学

一个网站建设需要多少钱,有没一些网站只做临床药学,深圳专业网站制作费用,线上营销渠道第4章:构建模块化应用 模块化应用是 JDK 9 的核心特性之一,通过模块化系统(Project Jigsaw)实现代码的强封装和显式依赖管理。本章详细讲解如何从零构建一个模块化应用,包括模块定义、编译、打包、运行及调试。 4.1 模…

第4章:构建模块化应用

模块化应用是 JDK 9 的核心特性之一,通过模块化系统(Project Jigsaw)实现代码的强封装和显式依赖管理。本章详细讲解如何从零构建一个模块化应用,包括模块定义、编译、打包、运行及调试。


4.1 模块化应用开发流程
  1. 定义模块:编写 module-info.java 声明模块元数据。
  2. 组织代码:按模块化结构组织源代码。
  3. 编译模块:使用 javac 编译模块。
  4. 打包模块:将模块打包为模块化 JAR。
  5. 运行模块:使用 java 命令运行模块化应用。
  6. 调试与优化:使用工具(如 jdeps)分析依赖关系。

4.2 模块化应用实战
场景:构建一个简单的模块化应用,包含以下模块:
  1. com.utils:工具模块,提供字符串处理工具。
  2. com.user:用户模块,依赖 com.utils,导出用户模型。

4.3 步骤详解
步骤1:定义模块
  1. com.utils 模块

    • 模块描述符
      // com.utils/module-info.java
      module com.utils {exports com.utils; // 导出工具包
      }
      
    • 工具类
      // com.utils/com/utils/StringUtil.java
      package com.utils;public class StringUtil {public static String capitalize(String s) {return s.substring(0, 1).toUpperCase() + s.substring(1);}
      }
      
  2. com.user 模块

    • 模块描述符
      // com.user/module-info.java
      module com.user {requires com.utils; // 依赖工具模块exports com.user.model; // 导出用户模型包
      }
      
    • 用户类
      // com.user/com/user/model/User.java
      package com.user.model;import com.utils.StringUtil;public class User {private String name;public User(String name) {this.name = StringUtil.capitalize(name);}public String getName() { return name; }
      }
      

步骤2:组织代码结构
src/
├── com.utils/
│   ├── module-info.java
│   └── com/utils/
│       └── StringUtil.java
└── com.user/├── module-info.java└── com/user/└── model/└── User.java

步骤3:编译模块

使用 javac 编译模块,指定模块源路径和输出目录:

javac -d out --module-source-path src --module com.utils,com.user

编译后的目录结构

out/
├── com.utils/
│   ├── module-info.class
│   └── com/utils/
│       └── StringUtil.class
└── com.user/├── module-info.class└── com/user/└── model/└── User.class

步骤4:打包模块

将模块打包为模块化 JAR:

# 打包 com.utils 模块
jar --create --file mods/com.utils.jar -C out/com.utils .# 打包 com.user 模块
jar --create --file mods/com.user.jar -C out/com.user .

打包后的目录结构

mods/
├── com.utils.jar
└── com.user.jar

步骤5:运行模块化应用

使用 java 命令运行模块化应用,指定模块路径和主模块:

java --module-path mods -m com.user/com.user.model.User

步骤6:调试与优化
  1. 使用 jdeps 分析依赖

    jdeps --module-path mods -s mods/com.user.jar
    # 输出示例:
    com.user -> com.utils
    com.user -> java.base
    
  2. 生成模块图

    jdeps --module-path mods --dot-output dots mods/com.user.jar
    
    • 生成 dots/com.user.dot 文件,可用 Graphviz 工具生成依赖图。

4.4 模块化应用最佳实践
1. 最小化模块导出
  • 仅导出必要的包,隐藏实现细节。
  • 示例:
    module com.myapp {exports com.myapp.api; // 仅导出API包
    }
    
2. 使用传递依赖
  • 通过 requires transitive 声明传递依赖,避免重复依赖。
  • 示例:
    module com.myapp {requires transitive com.utils; // 传递依赖
    }
    
3. 适配反射框架
  • 使用 opens 开放反射访问权限,支持 Spring/Hibernate 等框架。
  • 示例:
    module com.myapp {opens com.myapp.internal to spring.core; // 允许Spring反射访问
    }
    
4. 生成定制化 JRE
  • 使用 jlink 生成仅包含所需模块的最小化 JRE。
  • 示例:
    jlink --module-path $JAVA_HOME/jmods:mods \--add-modules com.user,java.base \--output myapp-runtime
    

4.5 常见问题与解决
问题解决方案
模块未找到(Module not found)检查模块路径(--module-path)是否包含依赖模块,确认 requires 声明正确。
无法访问非导出包使用 exports 导出包或 opens 开放反射访问权限。
生成的 JRE 缺少必要模块检查 jlink--add-modules 参数是否包含所有依赖模块。

4.6 总结

构建模块化应用是 JDK 9 的核心能力,通过模块化系统实现强封装和显式依赖管理,显著提升了代码的安全性和可维护性。开发者应掌握模块定义、编译、打包及运行的全流程,并结合工具链(如 jdepsjlink)优化应用性能与兼容性。

http://www.yayakq.cn/news/709604/

相关文章:

  • 北京珠宝网站建设宜宾建设网官网
  • 软件开发与网站开发的区别住房和城乡建设部门户
  • 域名注册网站排行app立即打开
  • wap网站开发百度商家入驻怎么做
  • 旅游网站 分析wordpress怎么画表格
  • 泰安做网站的代理免费注册公司
  • 搜狗优化好的网站wordpress共用用户数据
  • 深圳网站建设哪家专业什么项目必须走辽宁建设工程信息网
  • 品牌网站建设仁術大蝌蚪tp网站建设开源代码
  • 网站开发怎样搭建在长沙做网站
  • 维护网站信息怎么查在哪个网站做的备案
  • 网站系统怎么建设开一个网站的流程
  • 手机端网站关键词排名安卓客户端开发
  • 做网站广告词pc网站制作公司
  • wdcp 添加网站网站 支持建设单位
  • 网站问题seo解决方案河口建设局网站
  • 2017最佳网站设计低价网站制作企业
  • 网站按内容分可以分为asp建站系统源码
  • 太原网站建设总部地址北京地铁建设的官方网站
  • 手机和pc网站手机版oa
  • wordpress 网站内跳转wordpress 163 授权码
  • 东莞哪家网站建设建网站的工具
  • 网站建设和维护自学网站开发新闻怎么写
  • 上海网站建设报价书商城源码哪家价格低
  • 做一个网站需要多少人清苑网站建设
  • 广17网站一起做网店网站切图大图
  • 石家庄做网站北京建设工程质量协会网站
  • 高米店网站建设公司网站统计付费
  • 网站开发提供源代码wordpress搬家后页面空白
  • 滨海网站建设服务商资深的环保行业网站开发