我有一个Java项目,期望外部模块注册它。这些模块:在Java项目中引用外部模块的最佳实践
- 实现主体工程
- (有任何依赖关系一起)打包成单罐子特定接口
- 含有一些人类可读元信息(如模块名称) 。
我的主项目需要能够在运行时加载(例如使用自己的类加载器)任何这些外部模块。我的问题是:在主项目中注册这些模块的最佳方式是什么(我宁愿保留这个vanilla Java,而不是为这个孤立的问题使用任何第三方框架/库)?
我目前的解决方案是在主项目中保留一个.properties文件,其中key = name,value = class | delimiter |人类可读名称(或者协调两个.properties文件以避免分隔符分析)。在运行时,主项目将加载到.properties文件中,并使用它找到的任何条目来驱动类加载器。
这让我觉得很尴尬。有没有更好的方法呢?