【问题标题】:How to make Spring's @ComponentScan search components in included JARs如何在包含的 JAR 中制作 Spring 的 @ComponentScan 搜索组件
【发布时间】:2015-04-25 02:51:11
【问题描述】:

我用 Spring 组件制作了一个 jar,以包含在多个项目中 (core.jar)。

我创建了一个新的 Spring 项目,有 @ComponentScan 到正确的包,但它不知道 jar 中的组件。

如何在包含的 JAR 中制作 Spring 的 @ComponentScan 搜索组件?

【问题讨论】:

  • beans是在xml中定义还是注解?
  • 提供有关您的项目配置的更多详细信息。这里没有足够的信息来提供帮助。

标签: java spring spring-mvc spring-boot


【解决方案1】:

给它适当的包名以在 JAR 中扫描。

@ComponentScan(basePackages = {"com.example.from.jar"})

【讨论】:

  • @ComponentScan(basePackages = {"com.company.backend","com.company.backend.service"}),其中 com.company.backend.service 是来自 jar 的包跨度>
  • @Miciurash 你不需要...backend.service。它已经包含在第一个包名称中。
  • 是的,我知道,但它不会那样工作,所以我认为一些明确的列表会有所帮助:) 它没有
  • @Miciurash 它不起作用 不是很有用。编辑您的问题并提供详细信息。我的回答是回答您当前的问题:如何在包含的 JAR 中制作 Spring 的 @ComponentScan 搜索组件?您就是这样做的。如果它不起作用,则说明您做错了什么,您需要提供您的代码/配置来重现您的问题。
【解决方案2】:

我在使用 Spring boot 和 @ComponentScan 时遇到了类似的问题,这个文档帮助我解决了这个问题:http://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-structuring-your-code.html

关键是我的@SpringBootApplication 类位于@ComponentScan 的basePackages 之一的根包中。将其移至子包后,Spring 能够识别所有@ComponentScans。

【讨论】:

  • 谢谢。这对我帮助很大!我更喜欢构建我的项目,而不是在整个项目中添加额外的帮助程序,如 @ComponentScan。
猜你喜欢
  • 1970-01-01
  • 2010-12-09
  • 2011-07-14
  • 2018-12-28
  • 2019-07-27
  • 2018-04-10
  • 1970-01-01
  • 2011-10-13
  • 2014-02-12
相关资源
最近更新 更多