我正在尝试构建一个中型Java项目,以使其保持模块化和可扩展性。为此,主体系结构只负责在运行时加载jar(模块)中提供的一些类。这个解决方案显然需要动态类加载,但它会将组件的耦合减少到最小。
现在,问题来了。每个模块都可能依赖于某些库(例如Hibernate,Spring ......)。为了避免依赖地狱,我将所有库与架构接口一起放在一个项目中,并将此项目作为所有模块的依赖项。理想情况下,我想将这个依赖项目从类加载中排除,以避免运行时出现问题。
这是我的问题:
我仍然不确定是否采用这种架构,或者使用Maven静态构建除了每个模块上的依赖项目之外的完整项目。
非常感谢任何有关如何进行的建议。
目前我正在使用Maven构建和Spring作为框架,但我不介意添加其他技术。
谢谢。