方法级而不是类级的基本Jax-RS PATH配置

时间:2017-07-13 11:16:08

标签: java spring url spring-boot jax-rs

自从我刚开始使用JAX-RS以来,我有一个问题并且无法弄清楚。我们可以用方法而不是类来指定路径。我试图运行它,但它不起作用。

@Path("/images")
@Component
@Transactional
public class ImageResource {


    @GET
    public List<Image> getAll(){
        return this.imageDao.findAll();
    }
}

是否有可能有这样的事情:

@Component
@Transactional
public class ImageResource {

    @GET
    @Path("/images")
    public List<Image> getAll(){
        return this.imageDao.findAll();
    }
}

1 个答案:

答案 0 :(得分:4)

来自@path文档:

  

标识资源类或类方法将使用的URI路径   服务请求。

https://docs.oracle.com/javaee/7/api/javax/ws/rs/Path.html

所以你可以注释类和方法,但是你不能跳过类注释。我建议你使用:

@Path("/")
@Component
@Transactional
public class ImageResource {

    @GET
    @Path("/images")
    public List<Image> getAll(){
        return this.imageDao.findAll();
    }
}

对你来说,你似乎很奇怪:

1)在控制器类上有@Transactional注释。我相信它应该放在imageDao上。此外,请确保所有方法都需要交易。如果不是 - 仅将此注释放在所需的方法上。

2)您的控制器类被称为&#34; ImageResource&#34;。最好将这些类称为* Controller。在您的情况下ImageController。