方法级别而非类级别的基本Jax-RS PATH配置

ora*_*e14 1 java url spring jax-rs spring-boot

自从刚开始使用JAX-RS以来,我有一个问题无法解决很长时间。我们可以指定方法而不是类的路径。我正在尝试运行它,但是它不起作用。

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


    @GET
    public List<Image> getAll(){
        return this.imageDao.findAll();
    }
}
Run Code Online (Sandbox Code Playgroud)

是否可能有这样的事情:

@Component
@Transactional
public class ImageResource {

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

Iva*_*mar 5

从@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();
    }
}
Run Code Online (Sandbox Code Playgroud)

我对你也感到奇怪:

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

2)您的控制器类称为“ ImageResource”。最好将此类称为* Controller。在您的情况下ImageController。