gpt4 book ai didi

java - 为什么我需要在应用程序中显式声明 REST 资源?

转载 作者:行者123 更新时间:2023-12-02 11:26:55 25 4
gpt4 key购买 nike

在最近几个以微服务风格架构提供 JAX-RS 服务的示例中,我在定义根资源时看到了类似的情况:

 @Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new java.util.HashSet<>();
resources.add(my.package.MyService.class);
return resources;
}

为什么我需要重写此方法并显式声明我的资源,而不是仅仅让它们通过 @Path 注释来发现?

最佳答案

我猜你遇到过旧的或不太合格的例子。至少对于 JAX-RS 2.x 来说不需要这样做。您甚至不需要在 web.xml 中注册 JAX-RS。
只需使用扩展 javax.ws.rs.core.Application@ApplicationPath("/your/rest/root") 添加 JAX-RS 激活器 - 类注释即可。之后,您的 JAX-RS 提供程序应该扫描所有用 @Path 注释的资源并自动注册它们。对于所有拦截器和提供者来说都是如此。
如需更多示例,请访问官方 repo with Java EE samplesofficial samples for Wildfly app server - 您可能需要根据您使用的 JEE 版本更改分支。

希望对您有所帮助,祝您黑客愉快。

关于java - 为什么我需要在应用程序中显式声明 REST 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49550318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com