【问题标题】:Spring Boot Test: Is it a good idea to have Application class per module?Spring Boot Test:每个模块都有应用程序类是个好主意吗?
【发布时间】:2017-10-08 12:10:07
【问题描述】:

我的项目如下:

myProject/
         /persistence/pom.xml
         /persistence/src/main/java/PersistenceApplication.java
         /persistence/src/main/java/**.java

         /business/pom.xml
         /business/src/main/java/BusinessApplication.java
         /business/src/main/java/**.java

         /api/pom.xml
         /api/src/main/java/ApiApplication.java
         /api/src/main/java/**.java  

api 依赖于 businessbusiness 依赖于 persistence 模块。在生产环境中运行时,ApiApplication 将是主类。

但是,在运行测试时,我觉得需要添加 PeristenceApplicationBusinessApplication 只是为了运行带有 @SpringBootTest 注释的 Spring 测试。

这真的是一个要求吗?我对Spring-Boot 不太了解,很想知道这里有什么建议?

如何使用@SpringBootTest 测试我的模块,但在persistencebusiness 模块中不需要*Application.java

谢谢

【问题讨论】:

  • 你喜欢普通的单元测试还是更多的集成测试?
  • 更多单元测试

标签: java spring spring-mvc spring-boot spring-test


【解决方案1】:

我认为分层(水平)解耦是十年前过时的方法。我认为项目不应该是“逐层模块”或“逐层打包”的。

应该是“按功能打包”或“按功能按模块”或“按功能按微服务”的结构(垂直解耦)。

通过垂直解耦,您将在集成测试中涵盖一个包/模块/微服务中的某些功能,您的考虑自然会消失。

【讨论】:

  • 你能指导我找到这方面的资源吗?此外,即使在那种情况下,我们不会有多个Application 吗?或者你是说只有 1 个模块,有兴趣学习这种方法
  • 默认方法是每个可部署单元有一个 Application 配置类。要了解有关“按功能打包”与“按层打包”方法的更多信息,只需 google 即可。但这些很可能不是 Spring 特定的资源
猜你喜欢
  • 1970-01-01
  • 2014-03-17
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多