如何为 DAO 实现创建 Spring 引导共享库



我们收到一个要求,我们必须构建一个由多个共享库组成的模块化应用程序复合体,这些应用程序将使用这些应用程序提供 graphql 查询来公开这些共享库操作。

其中一个共享库是"核心"jar,它应该包含所有DAO实现(创建,更新,删除,读取实体(。但是,此核心不会有任何 REST 或运行入口点。

稍后,这个核心 jar 将被 graphql 应用程序添加为 maven 依赖项,该应用程序将公开所有使用共享库的查询/突变。

我可以在任何问题下创建弹簧启动 graphql 应用程序和 spring 启动核心共享库(不是作为自动配置模块(脚手架并连接依赖项。然而,在核心库项目中,当我开始实现 DAO 时,我遇到了不知道如何测试代码的问题,因为它没有运行入口点。此外,如果我必须创建测试用例,我将不得不创建测试配置,该配置应启动正在运行的应用程序以执行 Spring 测试。

此外,创建这个核心库变得更加复杂,因为我必须使用JOOQ和FlywayDB,所以为了运行测试用例,我将不得不使用嵌入式Postgresql db。

我对实现这个要求有点迷茫,我觉得构建一个没有共享库的单个应用程序会简单得多,然后开始重构它。

我在这里错过了什么吗?如果我没有入口点,如何执行以调试(以及测试(共享库以运行数据库?

如何将此库构建为普通的 Spring 项目并添加对spring.factories的依赖?

最新更新