首页 > 解决方案 > 如何创建一个独立的基于 Spring Boot 的 Java 库

问题描述

我正在开发一个基于 Spring Boot 的微服务,为了确保代码是可重用的,这个微服务使用的方法被构建到一个单独的 Java 库中。这个 java 库是一个单独的存储库。

到目前为止,这个 Java 库是一个纯 Java 库,只需将库包含pom.xml在 Spring Boot 应用程序中,一切正常。但现在我正在将此库转换为基于 Spring Boot 的库。因此,我通过包含标准的 Spring Boot 依赖项修改了pom.xmlof 库。这些方法现在通过使用@Component注解转换为 Bean。

现在在主 Spring Boot 应用程序中,当我尝试使用 autowire 并在 java 库中创建类的 bean 时,我的应用程序不会通过抛出指定 bean 不存在的错误来启动

我不确定是什么原因造成的。我做了很多谷歌搜索,但找不到任何有用的信息来创建一个单独的基于 Spring Boot 的库并将其集成到 Spring Boot 应用程序中。

请帮忙。

标签: javaspringspring-boot

解决方案


有两种方法可以解决此类问题。

  1. Bean您可以通过简单地ComponentScan在 Spring Boot 应用程序中为该 JAR 中的最小包执行操作来从外部库实例化。
@Configuration
@ComponentScan("com.your.path.to.least.pkg")
public class ExternalJarConfig {
//no code needed here, beans will be scanned from jar from com.your.path.to.least.pkg package
}
  1. 如果您的库需要像其他 Spring Boot 启动器一样工作,那么您可以创建自定义 Spring Boot 启动器。请参阅教程和存储库。

推荐阅读