SpringBootConfiguration

SpringBootConfiguration

我有一个具有以下结构的Maven多模块应用程序:

-parent_project
-actual_project
-jpaBase

父项目是项目的maven集合:actual_project和jpaBase(均为Spring Boot应用程序)

jpaBase是Actual_project的依赖项。

现在,当我执行mvn软件包时,出现单元测试错误:

找到多个@SpringBootConfiguration注释类

因为jpaBase和actual_project都具有用@SpringBootConfiguration注释的类。

我如何确保Spring仅将SpringBootConfiguration类视为实际项目而不是jpaBase。

谢谢!

最佳答案

从Spring文档中:

应用程序只能包含一个@SpringBootConfiguration和
大多数惯用的Spring Boot应用程序都会从​​中继承它
@SpringBootApplication。

你说 :

因为jpaBase和Actual_project都有用注释的类
@SpringBootConfiguration。

它不应该。此注释必须由应用程序一次使用。因此,只有属于Spring Boot应用程序的Actual_project和parent_project才应声明此批注。
@SpringBootConfiguration替换这些注释的声明:@Configuration@EnableAutoConfiguration@ComponentScan
您有信息in the official documentation

因此,在您的jpaBase项目中,您可以替换
通过@SpringBootConfiguration声明这三个注释:

@Configuration
@EnableAutoConfiguration
@ComponentScan({ "yourPackage" })
public class JpaConfig {
   ....
}

08-05 09:33