java - 在 Java 项目中引用外部模块的最佳实践

标签 java module project

我有一个 Java 项目,需要向其注册外部模块。这些模块:

  • 在主项目中实现一个特定的接口(interface)
  • 被打包到一个 uni-jar 中(连同任何依赖项)
  • 包含一些人类可读的元信息(如模块名称)。

我的主项目需要能够在运行时加载(例如使用它自己的类加载器)这些外部模块中的任何一个。我的问题是:将这些模块注册到主项目的最佳方式是什么(我更愿意保留这个普通的 Java,而不是为这个孤立的问题使用任何第三方框架/库)?

我目前的解决方案是在主项目中保留一个 .properties 文件,key=name,value=class |delimiter|人类可读名称(或协调两个 .properties 文件以避免分隔符解析)。在运行时,主项目加载 .properties 文件并使用它找到的任何条目来驱动类加载器。

这让我觉得很虚伪。有更好的方法吗?

最佳答案

Java 中的标准方法是定义一个 Service Provider .

关于java - 在 Java 项目中引用外部模块的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2804576/

相关文章:

java - 使用Index API同步将数千条记录索引到Elasticsearch中是正确的方法吗?

java - 在spark-jobserver上运行基于Java的Spark作业

drupal - 如何在 Drupal 7 中以编程方式创建新的内容类型?

ide - kate 中的新 kateproject

Gradle 项目,子项目重复执行

java - java 中带有外部 API 对象的线程安全

java - 对于南非货币,使用 "R"而不是 "ZAR"

python - 如何找出从哪个模块导入名称?

jquery - 我应该通过 RequireJS 加载所有内容(包括 jQuery)吗?

Java 从错误的路径获取类