Suv*_*jee 3 java spring maven multi-module spring-boot
我有一个 maven 多模块应用程序,其结构如下:
-parent_project
-actual_project
-jpaBase
Run Code Online (Sandbox Code Playgroud)
父项目是项目的 maven 聚合:actual_project 和 jpaBase(都是 spring boot 应用程序)
jpaBase 是 actual_project 的依赖项。
现在,当我执行 mvn 包时,出现单元测试错误:
发现多个@SpringBootConfiguration 注解类
因为 jpaBase 和 actual_project 都有用 @SpringBootConfiguration 注释的类。
如何确保 Spring 只考虑 actual_project 而不是 jpaBase 的 SpringBootConfiguration 类。
谢谢!
从 Spring 文档:
应用程序应该只包含一个 @SpringBootConfiguration 并且大多数惯用的 Spring Boot 应用程序将从 @SpringBootApplication 继承它。
你说 :
因为 jpaBase 和 actual_project 都有用 @SpringBootConfiguration 注释的类。
不应该。此注释必须由应用程序使用一次。所以,只有作为 Spring Boot 应用程序的 actual_project 和 parent_project 应该声明这个注解。
@SpringBootConfiguration替换这些注释的声明:
@Configuration,@EnableAutoConfiguration和@ComponentScan
您在官方文档中有信息。
因此,在您的 jpaBase 项目中,您可以替换
@SpringBootConfiguration为以下三个注释的声明:
@Configuration
@EnableAutoConfiguration
@ComponentScan({ "yourPackage" })
public class JpaConfig {
....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1676 次 |
| 最近记录: |