参照:html
http://blog.csdn.net/a19881029/article/details/43056429java
官网文档翻译版正则表达式
@Pathide
用来为资源类或方法定义URI,固然除了静态URI也支持动态URIui
@Path("service") public class MyResource { @Path("{sub_path}") @GET public String getResource(@PathParam("sub_path") String resourceName) { ......
若是此时客户端请求的URI为http://127.0.0.1:10000/service/sean,则sub_path的值为seanspa
@PathParam用来将请求URI的一部分做为方法参数传入方法中.net
对URI的动态部分,能够自定义校验正则表达式,若是请求参数校验失败,容器返回404 Not Found翻译
@Path("{sub_path:[A-Z]*}")
@GETcode
代表被注解的方法响应HTTP GET请求,@POST、@PUT和@DELETE同理htm
@Consumes
定义请求的媒体类型,若是不指定,则容器默承认接受任意媒体类型,容器负责确认被调用的方法可接受HTTP请求的媒体类型,不然返回415 Unsupported Media Type
方法级注解将覆盖类级注解
@Produces
定义响应媒体类型,若是不指定,则容器默承认接受任意媒体类型,容器负责确认被调用的方法可返回HTTP请求能够接受媒体类型,不然返回406 Not Acceptable
方法级注解将覆盖类级注解
@QueryParam
public String getResource( @DefaultValue("Just a test!") @QueryParam("desc") String description) { ...... }
若是请求URI中包含desc参数,例如:http://127.0.0.1:10000/service/sean?desc=123456,则desc参数的值将会赋给方法的参数description,不然方法参数description的值将为@DefaultValue注解定义的默认值
@Context
将信息注入请求或响应相关的类,可注入的类有:Application,UriInfo,Request,HttpHeaders和SecurityContext
@Singleton和@PerRequest
默认状况下,资源类的生命周期是per-request,也就是系统会为每一个匹配资源类URI的请求建立一个实例,这样的效率很低,能够对资源类使用@Singleton注解,这样在应用范围内,只会建立资源类的一个实例