当前位置: 首页 > 知识库问答 >
问题:

带@SpringBootConfiguration的Spring Boot多模块应用程序

何兴安
2023-03-14

我有一个maven多模块应用程序,其结构为:

-parent_project
-actual_project
-jpaBase

父项目是项目的maven聚合:actual_project和jpaBase(两个Spring Boot应用程序)

JpaBase是actual_project的依赖项。

现在,当我做一个mvn包时,我得到一个单元测试错误:

找到多个@SpringBootConfiguration注释类

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

如何确保Spring只考虑actual_project而不考虑jpaBase的SpringBootConfiguration类。

谢谢!

共有2个答案

劳通
2023-03-14

事实上,对于任何关注这一点的人来说,SpringBootConfiguration只会取代@Configuration

@SpringBootApplication取代了@Configuration@EnableAutoConfiguration@ComponentScan

堵才哲
2023-03-14

从Spring留档:

应用程序应该只包含一个@SpringBootConfiguration,大多数惯用的SpringBoot应用程序将从@SpringBootApplication继承它。

你说:

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

它不应该。此注释必须按应用程序使用一次。因此,只有actual_project和parent_project是Spring启动应用程序时才应声明此注释。

@SpringBootConfiguration替换这些注释的声明:
@Configuration@EnableAutoConfiguration@ComponentScan

你可以在官方文件中找到相关信息。

因此,在 jpaBase 项目中,您可以将@SpringBootConfiguration替换为以下三个注释的声明:

@Configuration
@EnableAutoConfiguration
@ComponentScan({ "yourPackage" })
public class JpaConfig {
   ....
}
 类似资料:
  • 我花了相当长的时间,但我无法通过这个(配置)问题。 技术栈:Java(1.8)、Springboot(starter-parent、starter-web)、Maven、IntelliJ IDEA 描述:尝试创建一个多模块Java应用程序,由2个模块组成(最初): null 问题:Springboot在发送http请求时没有从webgateway模块=>404错误加载/扫描RestControll

  • 我正在寻找关于如何建立一个谷歌应用引擎项目的建议,该项目涉及多个模块,其中一个模块是GWT项目。我已经阅读了谷歌应用引擎模块文档(https://developers.google.com/appengine/docs/java/modules/)并在Stackoverflow上找到了一些帮助,比如本文使用appengine骨架原型发布GWT GAE应用程序引擎模块。然而,这涉及到很多东西,所以我

  • 我有一个Maven Java应用程序,我正在尝试进行对接。到目前为止,我有以下dockerfile,是我从这个答案中复制的。 如果我的应用程序是一个单模块项目,这将是很好的,但是因为它是多模块的,所以我假设我不能仅仅使用。 但是,这会在阶段出错: 注意,来自我的本地m2文件夹。

  • 我有1个应用程序和2个模块 框架结构 但我不能在MyApp中使用MyModule的文件。IDE显示我“无法访问”错误,我想扩展一个MyModule类的类。而且它不是从MyModule创建类的,有人对此有想法吗?怎么了?

  • 我正在开发一个React应用程序,我想测试一个模块,我们称之为B,这取决于另一个模块,我们称之为a。 场景可能是这样的: 测试我的组件的核心库是Jest和Ezyme。我的目标是测试模块B,但我想单独测试它,所以我想模拟对模块A的依赖。js。 我知道一种方法是注入helperFn作为道具,而不是导入它,这样在测试期间我就可以注入一个模拟函数,但是这个应用程序上有很大的模块,每个模块都有一些依赖关系。

  • 我试图在一个多模块的gradle项目中使用Springdoc,但我无法使它工作。有人做过类似的事情吗? 我的Gradle项目结构如下: My project 应用程序 与模块1相同 Application模块依赖于每个模块项目和 在API子模块上有: