java - 如何在 Spring Boot 的另一个 RestController 中使用 @Autowired/@Inject 访问 RestController 的路径?
问题描述
这是在 J2EE 应用程序中完成的示例,我正在 Spring Boot 中寻找一个精确的解决方案。
路径:localhost:8080/first/second/get-this
输出:Here You Go!
//First Resource
@Path("first")
@RequestScoped
public class FirstResource {
@Inject
SecondResource secondResource;
@Path("second")
public SecondResource getSecondResource() {
return secondResource;
}
}
//Second Resource
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class SecondResource {
@Path("get-this")
@GET
@Produces(MediaType.APPLICATION_JSON)
public void getThisMessage(){
System.out.println("Here You Go!");
}
解决方案
子资源是 JAX-RS 的一个特性,它是来自 JavaEE/JakartaEE 的一个 API。Spring MVC 或 Spring WebFlux API 中没有子资源或任何等效功能。您可以做的是在 Spring 中使用 Jersey创建 Rest 控制器,Jersey 是 JAX-RS 的参考实现,因此它支持子资源。
推荐阅读
- java - JSOUP / HTTP 错误获取 URL。状态=503
- bash - cURL 调用中的正则表达式
- android - 在将 compileSdkVersion 和 targetSdkVersion 更新为 26 时 - 使用配置的资源“attr/fontFamily”的重复值
- android - 使通知栏渐变和导航栏同时变黑
- android-studio - 如何从左侧 IntelliJ IDEA 中删除所有内容?
- javascript - 如果未在数据中声明此值,为什么它是反应性的?
- javascript - MVC:我可以从 Javascript 中清除 ViewBag 吗?
- javascript - 在 do while 循环中为 get 请求使用闭包
- hbase - 如何使用 RowCounter 计算 Hbase 表中的行数
- python - 在 Spyder 之类的同一调试会话中运行任意行?