【问题标题】:Modular web application using pure Spring?使用纯 Spring 的模块化 Web 应用程序?
【发布时间】:2015-04-17 12:55:57
【问题描述】:

我们正在尝试使用 Spring 设计一个模块化的 Web 应用程序。有一些常见的核心服务(如数据库、日志记录、连接模块等)可供其他模块使用(可以是不同的战争文件)。我知道 OSGi 非常适合这种用例,但我想知道它是否可以使用纯弹簧来完成。任何指针将不胜感激。

【问题讨论】:

  • 为什么不只是普通的罐子?
  • @chrylis 你的意思是说我需要将核心服务 jar 作为依赖项添加到我的客户端模块吗?

标签: spring spring-mvc spring-boot


【解决方案1】:

从开发的角度来看,你可以看看 Onion 架构:https://www.develop.com/onionarchitecture

我猜您不能使用它将您的应用程序模块化为不同的 war 文件,但如果您希望将数据访问基础架构与业务逻辑完全分离,它会非常有用。

如果您想在运行时分离所有内容,另一种方法是使用微服务,但这并不意味着纯 Spring 解决方案,但是 Spring 通过 spring-cloud 项目为微服务提供了一个很好的概念,该项目集成了像 eureka 这样的开源框架. (最初由 netflix 开发。)如果您可以使用 spring-boot,如果您想快速启动并运行微服务,那么 spring-cloud 项目是一个非常好的起点。 (包括服务发现和远程配置管理。)

最后,如果您需要的只是将开发分成几个项目,并且您已经在使用 maven 进行依赖项管理,那么您还可以将模块分成单个项目并像处理来自第三方的任何其他依赖项一样处理它们。根据应用程序的大小,可能值得设置 Jenkins 或任何其他构建服务器以及您自己的远程 maven 存储库,因此您不需要在每台开发机器上本地构建所有依赖项。我们正在使用Apache Archiva 来完成这项任务,目前还没有遇到任何问题。

【讨论】:

  • 在我的情况下,项目是完全不同的,但如果他们愿意,他们可能会使用运行时提供的一些公共核心服务。基本上我将在servlet容器中部署多个war文件(不一定在功能上相关),并且我需要使一些核心服务作为容器运行时的一部分可用。我会看看微服务是否符合我的需求。
猜你喜欢
  • 2014-02-17
  • 2012-10-12
  • 2013-02-03
  • 2011-03-27
  • 2013-08-15
  • 2014-01-25
  • 2012-03-23
  • 2011-07-31
  • 2013-12-13
相关资源
最近更新 更多