Java JAX-RS中的多个@Path
背景:我问了另一个问题:关于球衣的表现。我还在泽西岛吉拉发行了一期。显然,jersey 2中的子资源存在已知的性能问题 我的数据模型基于实体A,包含多个子实体。但是,子实体的ID是唯一的,服务器允许直接访问它们。比如说, /server/As/{a_id}/Bs/{b_id}==/server/Bs/{b_id} 我们正在为此使用子资源,因此相同的资源B既是spring组件又是资源的成员。所有的资源都是Springbean,所以两个B都是同一个实例 现在我试图通过根本不使用子资源来解决这个问题。我发现@Path不支持多条路径。有没有办法解决这个问题 我试过以下方法,有意义吗?你能提供其他选择吗?我这样问是因为我将不得不对实体C、D、E等进行多次相同的操作,可能还需要额外的资源级别 首先,我从资源类中删除了B引用,然后:Java JAX-RS中的多个@Path,java,spring,rest,jax-rs,jersey-2.0,Java,Spring,Rest,Jax Rs,Jersey 2.0,背景:我问了另一个问题:关于球衣的表现。我还在泽西岛吉拉发行了一期。显然,jersey 2中的子资源存在已知的性能问题 我的数据模型基于实体A,包含多个子实体。但是,子实体的ID是唯一的,服务器允许直接访问它们。比如说, /server/As/{a_id}/Bs/{b_id}==/server/Bs/{b_id} 我们正在为此使用子资源,因此相同的资源B既是spring组件又是资源的成员。所有的资源都是Springbean,所以两个B都是同一个实例 现在我试图通过根本不使用子资源来解决这个问题。
public abstract class AbstractB {
@GET
@Path({b_id})
@Produce(MediaType.APPLICATION_JSON)
public Response getB(@PathParam("b_id") String bId) {
...
}
...
}
@Component
@Path ("As/{a_id}/Bs")
public class B extends AbstractB{/* empty */}
@Component
@Path ("Bs")
public class AsB extends AbstractB{/* empty */}
编辑:通过peeskillet-您可以改用委托吗?如果可以注入具有BL for B的类,那么可以从那里调用相同的REST端点。