当前位置:  开发笔记 > 编程语言 > 正文

使用@SpringBootApplication进行两次Spring Boot项目

如何解决《使用@SpringBootApplication进行两次SpringBoot项目》经验,为你挑选了1个好方法。

我有一个数据项目和UI项目.这两个项目都是Spring Boot应用程序.两个项目都具有相同的根包(com.myorg),其中主类具有注释@SpringBootApplication.

数据项目的主要类是:

package com.myorg;
@SpringBootApplication
public class DataApplication {

    public static void main(String[] args) {
        SpringApplication.run(DataApplication.class, args);
    }

}

UI项目的主要类是:

package com.myorg;
@SpringBootApplication
public class UiApplication {

    public static void main(String[] args) {
        SpringApplication.run(UiApplication .class, args);
    }

}

UI项目通过以下Gradle依赖项依赖于数据项目:

dependencies {
    compile('com.myorg:data:1.0')
}

如果我运行UI应用程序,它运行没有问题.但是,如果我在UI应用程序中运行集成测试,如下所示:

package com.myorg
@RunWith(SpringRunner.class)
@SpringBootTest
public class UiIntTest {

    @Test
    public void contextLoads() {
    }

}

发生以下初始化错误:

java.lang.IllegalStateException: Found multiple @SpringBootConfiguration annotated classes

在数据项目的主类中,如果我替换@SpringBootApplication

@Configuration
@EnableAutoConfiguration
@ComponentScan({ "com.myorg" })

尝试运行其集成测试时,我收到以下初始化错误:

java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

例如,如果我尝试运行:

package com.myorg
@RunWith(SpringRunner.class)
@SpringBootTest
public class DataIntTest {

    @Test
    public void contextLoads() {
    }

}

如何正确配置数据和UI项目?



1> alexbt..:

您需要指定要使用的Spring Boot Main类@SpringBootTest:

@SpringBootTest(classes = YourUiSpringBootApp.class)

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有