在独立 Java 应用程序中访问 Spring 启动应用程序 JAR

Access Spring Boot Application JAR in Standandalone Java Application

我有一个 Spring 带有 REST 控制器的引导应用程序 class 有两个 REST 端点

我想将它打包到一个 JAR 中,并在独立 java class

中作为普通方法调用访问 REST 端点方法

我已将 JAR 添加到我的项目构建池中,如下所示:

尽管在 class 路径

中添加了 JAR,但我无法在我的独立项目中为 Rest Controller class 创建对象

例如:我有一个名为 TestController 的 class 和一个映射到 (/test) 路径的名为 testMethod() 的方法。

我不想将其作为 HTTP 端点调用,而是想为控制器创建对象 class 和访问方法如下:

public static void main(String[] args) {

    TestController test = new TestController();
    test.testMethod();
}

提前致谢!

您可以配置 spring-boot-maven-plugin 来构建两个工件:一个作为普通 'library' jar,仅包含项目的 类,另一个作为胖子,可执行的 jar。参见 spring-boot-maven-plugin documentation

使用默认的 spring-boot-project,以 spring-boot-starter-parent 作为父项目,下面的配置将生成一个正常的 <artifactId>-<version>.jar 和一个胖 <artifactId>-<version>-exec.jar:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>repackage</id>
            <configuration>
                <classifier>exec</classifier>
            </configuration>
        </execution>
    </executions>
</plugin>

没有 spring-boot-starter-parent 它需要稍微不同的配置 - 请参阅参考文档。