我们正在尝试使用spring设计模块化Web应用程序。有一些常见的核心服务(如数据库,日志记录,连接模块等),可供其他模块使用(可以是不同的war文件)。我知道OSGi非常适合这种用例,但我想知道是否可以使用纯弹簧来完成。任何指针将不胜感激。
答案 0 :(得分:0)
从开发的角度来看,你可以看看洋葱架构:https://www.develop.com/onionarchitecture
我想您无法使用它将您的应用程序模块化为不同的war文件,但如果您希望将数据访问基础架构与业务逻辑完全分离,则可能非常有用。
如果你想在运行时分离所有东西,另一种方法是使用微服务,但这并不意味着纯粹的弹簧解决方案,但是spring为使用集成了开源框架的spring-cloud项目的微服务提供了一个很好的概念。像尤里卡。 (最初由netflix开发。)如果您可以使用spring-boot,那么如果您希望快速启动并运行微服务,那么Spring-cloud项目将是一个非常好的起点。 (包括服务发现和远程配置管理。)
最后,如果您需要的是将开发分成几个项目并且您已经在使用maven进行依赖关系管理,那么您也可以将模块分成单个项目并像处理来自第三方的任何其他依赖项一样处理它们。根据应用程序的大小,可能需要设置Jenkins或任何其他构建服务器以及您自己的远程maven存储库,因此您无需在每台开发机器上本地构建所有依赖项。我们正在使用Apache Archiva执行此任务,到目前为止没有遇到任何问题。