
Jigsaw和OSGi试图解决相同的问题:如何在保护内部组件的同时允许粗粒度模块进行交互。
在Jigsaw的情况下,较粗粒度的模块包括Java类,程序包及其依赖项。
这是一个示例:Spring和Hibernate。两者都依赖于第三方JAR
CGLIB,但是它们使用该JAR的不同,不兼容的版本。如果您依赖标准JDK怎么办?包括Spring想要破解Hibernate的版本,反之亦然。
但是,如果您拥有像Jigsaw这样的更高级别的模型,则可以在不同的模块中轻松管理不同版本的JAR。将它们视为更高级别的软件包。
如果您从GitHub源码构建Spring,您也会看到它。他们已经重做了框架,因此它由几个模块组成:核心模块,持久性模块等。您可以选择应用程序所需的最小模块依赖项集,而忽略其余部分。它曾经是单个Spring
JAR,其中包含所有.class文件。
更新:五年后-拼图可能仍然需要解决一些问题。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)