我有一个具有以下结构的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 {
....
}