为了响应应用的请求,服务端需要提供一些资源,称之为资源类(Resource class)。
对每一个资源类,可以使用以下annotation来对资源类进行设置:
1、javax.ws.rs.ApplicationPath:是配置整个应用的一个路径,如果发布在一个servlet container里面的话,在web.xml的servlet-mapping覆盖
<servlet>
<servlet-name>restservlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>restservlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
2、javax.ws.rs.Path:若果未配置将出现如下异常:The ResourceConfig instance does not contain any root resource classes,这亦是一个资源对外界的访问入口http://xxx.xx.services/gateway。
3、javax.ws.rs.consumes;定义资源类或MessageBodyReader方法所能接收的媒体类型,若未指定,container将默认可接受任何类型媒体。container负责保证唤醒的方法能够接收HTTP 请求实体主题,如果没有方法可用,按照RFC2616规定一定要响应一个HTTP“415 不支持媒体类型”。
javax.ws.rs.produces;定义资源类或MessageBodyReader方法所能产生的媒体类型,若未指定,container将默认可产生任何类型媒体。container负责保证唤醒的方法能够接收HTTP 请求实体主题,如果没有方法可用,按照RFC2616规定一定要响应一个HTTP“406不接受”。
如果是只响应单值的话是不需要显式设置的,container会根据产生的类型来响应。方法级注释覆盖一个类级别注释
4、javax.ws.rs.httpmethod:把一个注解和HTTP 方法关联起来
javax.ws.rs.get:指明注释的方法响应HTTP GET请求
javax.ws.rs.post:指明注释的方法响应HTTP POST请求
javax.ws.rs.delete:指明注释的方法响应HTTP DELETE请求
javax.ws.rs.put:指明注释的方法响应HTTP DELETE请求
javax.ws.rs.head:指明注释的方法响应HTTP HEAD请求
javax.ws.rs.option;指明注解的方法响应HTTP可选参数
5、javax.ws.rs.defaultparm:定义使用下面annotation绑定的request元数据的默认值
javax.ws.rs.cookieparam:将HTTP cookie的值绑定到资源方法参数,资源类字段,或资源类bean属性
javax.ws.rs.formparam:将HTTP 实体body中的表单元素的值绑定到资源方法参数,资源类字段,或资源类bean属性,值是通过URL解码
javax.ws.rs.headerparam:将HTTP header绑定到资源方法参数,资源类字段,或资源类bean属性
javax.ws.rs.matrixparam:将URI 参数矩阵绑定到资源方法参数,资源类字段,或资源类bean属性,值是通过URL解码
javax.ws.rs.pathparam:将URI模板参数或路径段包含模板参数绑定到资源方法参数,资源类字段,或资源类bean属性
javax.ws.rs.queryparm:将HTTP 查询参数绑定到资源方法参数,资源类字段,或资源类bean属性,值是通过URL解码
javax.ws.rs.encode;URL编码
javax.ws.rs.core.context:该注释用于注入信息到类字段,bean属性或方法参数