gpt4 book ai didi

java - 如何在Spring Boot中对同级包进行组件扫描

转载 作者:行者123 更新时间:2023-12-02 10:24:37 24 4
gpt4 key购买 nike

目前,我有相当多的服务是用 Spring Boot 2.1.3(在 mono-repo 中)编写的,并且我有一个在大多数服务中使用的通用包。

所以我的包是按以下方式组织的:

root
root.common
root.serviceA
root.serviceA.<subpackages>
root.serviceB
root.serviceB.<subpackages>
...
root.serviceX
root.serviceX.<subpackages>

在每个服务中,我都有 Program.java,其中标记有 @SpringBootApplication(例如 root/serviceA/Program.java)

现在我遇到的问题是我在 root.common 中有一个组件(例如 root/common/JSONSerializer.java),需要加载到所有的服务。我尝试使用 @JsonComponent 标记该文件,但显然它不起作用,因为它位于 root.service* 包之外。

我设法通过在主文件中手动添加 @Import 标签来使其工作,但这意味着对于每个服务,我必须手动添加 @Import({root.common.JSONSerializer .class}) 这是乏味且容易出错的。有没有办法将该文件包含在组件扫描过程中?

最佳答案

您可以通过以下方式设置每个程序类别:

 @SpringBootApplication(scanBasePackages = {"root.serviceA", "root.common"})

引用文献

SpringBootApplication documentation

关于java - 如何在Spring Boot中对同级包进行组件扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54068179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com