【问题标题】:Multi-module spring-boot jpa application多模块spring-boot jpa应用
【发布时间】:2016-02-02 12:17:17
【问题描述】:

我在将单体应用程序重构为多模块结构时遇到了麻烦:

-\
 + core (jpa domain entities, services, ...)
 + command-line-utils
 + web-app

我已经移动了类并配置了 pom 文件,以便一切都可以编译并且网络应用程序可以正确执行。

我无法理解如何将我最初拥有的基本 junit 测试移入核心模块:我无法停止与缺少 @Autowired 存储库有关的错误。

我知道我可能应该在核心模块中定义某种配置类(?)(除了属性文件中的数据源参数外,我没有任何关于原始 moloc 中持久性的特殊配置) .

【问题讨论】:

  • 您可以通过使用配置注释配置配置类上的所有 bean,然后使用 bean 声明每个 bean 或在您尝试自动装配的每个类上添加服务来做到这一点(假设您的配置正在扫描您尝试自动装配的所有类

标签: java spring unit-testing spring-boot


【解决方案1】:

您可以直接在 JUnit 测试中定义配置。使用 org.springframework.test.context 包中的 @RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration 注释。

在您的测试中,您可以根据需要使用 Mocks 和静态类中的真实类定义配置,例如

    @Configuration
    public static class Config {

        @Bean
        public RestOperations restTemplate() {
            return mock(RestOperations.class);
        }

        ....
    }

【讨论】:

    【解决方案2】:

    我已经解决(这个问题)在src/test/java 中定义一个@SpringbootApplication 注释类,在测试类中用@SpringApplicationConfiguration(class = MyTestApp.class ) 引用。

    以这种方式,通常的 spring-boot 魔术:-) 可以正常工作。

    【讨论】:

      猜你喜欢
      • 2021-01-01
      • 2020-07-04
      • 2015-11-28
      • 2015-07-30
      • 2017-05-17
      • 1970-01-01
      • 2019-01-25
      • 2022-01-24
      • 2017-02-09
      相关资源
      最近更新 更多