问题描述
我有一个带有 REST 控制器类的 Spring Boot 应用程序,它有两个 REST 端点
我想将其打包到 JAR 中,并在独立 java 类中作为正常方法调用访问 REST 端点方法
我已经在我的项目构建池中添加了 JAR,如下所示:
尽管在类路径中添加了 JAR,但我无法在我的独立项目中为 Rest Controller 类创建对象
例如:我有一个名为 TestController 的类和一个名为 testMethod() 的方法,该方法映射到 (/test) 路径。
我想为控制器类和访问方法创建对象,而不是将其作为 HTTP 端点调用,如下所示:
public static void main(String[] args) {
TestController test = new TestController();
test.testMethod();
}
先谢谢你!
解决方法
您可以配置 spring-boot-maven-plugin 以构建两个工件:一个作为普通的“库”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,它需要稍微不同的配置 - 请参阅参考文档。