首页 > 解决方案 > 如何在 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!");    
} 

标签: javaspringspring-bootrestspring-restcontroller

解决方案


子资源是 JAX-RS 的一个特性,它是来自 JavaEE/JakartaEE 的一个 API。Spring MVC 或 Spring WebFlux API 中没有子资源或任何等效功能。您可以做的是在 Spring 中使用 Jersey创建 Rest 控制器,Jersey 是 JAX-RS 的参考实现,因此它支持子资源。


推荐阅读