使用Spring框架构建库或API是否合适?

时间:2018-04-09 11:26:55

标签: java spring spring-mvc

我目前正在构建一个将由另一个Spring REST应用程序使用的库或API,下面是我考虑使用Spring的优势。

  1. Spring flow(Context initialization-> Post construct)
  2. 阅读属性文件的简便方法
  3. 自动装配和bean管理
  4. 快速发展
  5. 以下是缺点

    1. 紧密耦合,将要使用库/ API的主应用程序必须导入或引用库的配置类以初始化上下文
    2. 主要应用程序必须使用Spring(考虑在其他项目中使用)
    3. 我有什么遗漏,可以使用Spring框架来开发API或库吗?

      注意:要构建的库数量为3-5,将来会增长。

1 个答案:

答案 0 :(得分:1)

使用spring的唯一理由就是从构建应用程序运行时中受益。

我认为图书馆的春天并不是一个很大的优势:它只是替换了一些set和{{1}}语句,这些语句可以在文档中轻松解释,甚至包含一些样本api用户的bean声明,如果他希望在spring环境中初始化你的lib。

您没有给出的缺点之一是您的库支持多个版本的spring: 在一两年内会发生什么,当使用你的库开发一个旧的应用程序需要小的增强,但仍然是在春季v4,但新的应用程序将导入spring v6(没有资源将Spring v4上的旧应用程序迁移到最新版本)?

所以我只在你需要参与主应用程序的数据库事务(以及其他使用spring的方便的其他任务)时才在库中使用spring,但是否则尽量少依赖弹簧。

编辑: 即使在库的运行时最小化spring的使用,也可以广泛使用它来测试库。

弹簧上下文而不是包含在lib的资源中只是一个测试资源,例如,您可以使用它来引导spring-test。