支持的接口
ApplicationConfigurationProvidersMessageBodyReaderMessageBodyReaderMessageBodyWriterContextResolverExceptionMapperFeatureDynamicFeatureContainerRequestFilterContainerResponseFilterReaderInterceptorWriterInterceptorParamConverterProvider@Priority@ConstrainedTo@PreMatching@NameBinding- …
Note
上述接口的语义、功能与JAX-RS标准中定义的相同。
使用方式
使用时将实现上述接口的实现类直接注入Spring容器并加上指定注解(如果是Controller方法需要加上@Path,其他的扩展加上@Provider)即可生效。
eg.
1.自定义Application,@ApplicationPath("/abc")为可选项
@ApplicationPath("/abc")
@Component
public class ApplicationImpl extends Application {
@Override
public Set<Class<?>> getClasses() {
return Collections.singleton(HelloWorldResource.class);
}
}
2.自定义Provider
@Component
@Provider
public class RequestFilterDemo implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext context) {
context.getHeaders().add("name", "value");
}
}
3.自定义Controller
@Component
@Path("/simple")
public class HelloWorldController {
@GET
public String index() {
return "Hello JAX-RS3.0";
}
}
Note
如果在非Spring环境下使用JAX-RS,则需要在应用初始化时将JAX-RS接口的实现类添加到启动上下文,示例如下:
Restlight.forServer()
.daemon(false)
.deployments()
// 添加JAX-RS接口实现类
.addExtensions(xxxx)
.server()
.start();
}