【发布时间】:2021-05-24 18:40:33
【问题描述】:
我有一个带有 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 创建的 uber-jar 不打算用作依赖项。因为它在 lib 目录中包含自定义类加载器和依赖 jar。标准的 java 类加载器不能从那里加载类。您的选择是将其余控制器(或您想要重用的所有类)提取到 maven 模块中,并将生成的 jar 用作您的 spring boot 应用程序和您无法围绕它创建的其他应用程序的依赖项。另一种方法是公开 REST 控制器使用的服务并减少“RESTy”依赖。
标签: java spring-boot maven jar executable-jar