网站首页 > 技术文章 正文
可选依赖(Optional Dependency)
模块系统在编译时以及运行时验证模块间的依赖关系。 有时我们希望在编译时模块依赖性是必需的,但在运行时是可选的。
你在开发一个库时,可能需要一个特定的模块在运行时选择更好的模块,否则,它回落到比可选模块表现差的模块。但是,库是根据可选模块进行编译的,如果可选模块不可用,则确保不依赖于可选模块的代码执行。
另一个例子是导出注解包的模块。 Java运行时已经忽略不存在的注解类型。 如果程序中使用的注解在运行时不存在,则注解将被忽略。 模块依赖关系在启动时验证,如果模块丢失,应用程序将无法启动。 因此,必须将含有注解包模块的模块依赖性声明为可选。
您可以通过在requires语句中使用static关键字声明可选依赖关系:
requires static <optional-package>;
以下模块声明包含对com.jdojo.annotation模块的可选依赖关系:
module com.jdojo.claim { requires static com.jdojo.annotation; }
允许在require语句中同时使用transitive 和static 修饰符:
module com.jdojo.claim { requires transitive static com.jdojo.annotation; }
如果transitive 和static 修饰符一起使用,则可以按任何顺序使用。 以下声明具有与之前相同的语义:
module com.jdojo.claim { requires static transitive com.jdojo.annotation; }
猜你喜欢
- 2024-10-18 MyBatisPlus又在搞事了!发布神器,一个依赖轻松搞定权限问题
- 2024-10-18 史上硬核!Jar 包依赖冲突排查思路和解决方法
- 2024-10-18 小白都能看懂的 Spring 源码揭秘之依赖注入(DI)源码分析
- 2024-10-18 Spring-bean的循环依赖以及解决方式
- 2024-10-18 Maven技术方案最全手册 maven详细教程
- 2024-10-18 JAVA编程规范之二方库依赖 java方法库
- 2024-10-18 Spring依赖注入原理分析 spring依赖注入作用
- 2024-10-18 简单2步实现maven打包java工程并将依赖jar输出到指定目录
- 2024-10-18 怎么进阶学好Java 如何用Spring解决循环依赖
- 2024-10-18 Spring 源码分析之 bean 依赖注入原理(注入属性)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)