这是我的总体目标:我想要一个 Spring Boot REST API。最终,这将有一个 Angular 前端。REST API 将有许多 JPA 实体。我需要能够在 Jasper Reports Server 以及我的 REST API 中使用这些实体。为此,我认为最好的方法是多模块 Maven 项目。我的设置将如下所示:
- Project
--Web App
--Utilities
--HumanResources
--Sales
--etc.
其中 Web App、Utilities、HumanResources、Sales 等是模块。我可以在 Web 应用程序中使用 Utilities,但构建也会生成一个单独的 jar,我可以在 Jasper 中使用它(至少这是我的希望)。
理想情况下,我希望只有一个 application.properties 文件用于 Spring Boot。但是,据我所知,如果我将 application.properties 文件放在 Web App 模块中,那么我所有的 Utilities、Sales 等单元测试(至少任何需要数据库连接的)都需要在 Web 中应用程序。这似乎也不理想,但如果我将所有测试放在他们自己的模块中,似乎每个模块中都需要一个 application.properties 文件,这似乎也令人困惑。
我的方法有效,还是有更好的方法?如何在每个模块上进行测试,但仍然以简单的方式将所有内容联系在一起?
谢谢!
首先,每个模块都应该有自己的测试类,以便将测试类保持在它们测试的代码的同一模块中。将测试类放在另一个模块中将是一个非常糟糕的主意。事实上,如果您修改了模块中的某些内容而破坏了测试,但您忘记了将测试类放置在哪个模块中,会发生什么情况?除非编译其他模块,否则在编译时不会收到任何通知。
其次,如果您需要通用配置/文件/类,您可以将它们全部放在一个通用模块中,该模块将保存需要在模块之间共享的所有内容,而无需复制它们。因此,每个模块都会将公共模块声明为依赖项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句