您可以做的是injectResourceContext
,并通过它来解析子资源实例。
当子资源定位器方法返回托管资源类的实例时,可以利用资源上下文。此类实例将在声明的范围内注入和管理,就像根资源类的实例一样。
如前所述,您可以获得子资源类的实例,并且所有注入都将得到处理
@Path("root")
public class Resource {
@Context
ResourceContext context;
@Path("sub/{id}")
public SubResource get() {
return context.getResource(SubResource.class);
}
}
@PathParam
也会解析为对您的子资源实例的注入。所以你可以做
class SubResource {
@Autowired
Service service;
@PathParam("id")
long id;
}
子资源实例解析后,将注入服务和路径参数。