有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java基本JaxRS路径配置在方法级别而不是类级别

我有一个问题,因为我刚开始使用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) 个答案

  1. # 1 楼答案

    从@path文档:

    Identifies the URI path that a resource class or class method will serve requests for.

    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)控制器类称为“ImageResource”。最好将此类类称为*Controller。在您的情况下,使用ImageController