我有一个带有几个依赖项的Spring应用程序:
@ComponentScan({"com.test.adapter",
"com.dependency.commons.framework.util"}
)但是在启动过程中,我看到来自依赖jar的调用包被应用,并且我得到了冲突。你知道我怎样才能只应用Java软件包:"com.dependency.commons.framework.util"
发布于 2022-07-06 07:20:02
解A
使用属性excludeFilters of @ComponentScan。
@ComponentScan(basePackages = { "com.test.adapter",
"com.dependency.commons.framework.util" },
excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = "com.example.ignore.packages.*"))解决方案B
因为你的题目是
@ComponentScan没有被应用-所有的Java都被扫描
也许,具有@SpringBootApplication的launcher类位于包的较高级别。Spring将自动扫描该类所在级别上的所有类和所有嵌套的子包。
请参阅下面的结构作为示例

要避免这种情况,您可以在根包之外的特定包中移动launcher类。

https://stackoverflow.com/questions/72876573
复制相似问题