javax.ws.rs注解:@Conumes 和 @Produces等
1、概述
@Consumes
注释代表的是一个资源可以接受的 MIME 类型。
@Produces
注释代表的是一个资源可以返回的 MIME 类型。
这些注释均可在资源、资源方法、子资源方法、子资源定位器或子资源内找到。
2、@Produces:返回的类型
a.返回给client字符串类型(text/plain)
@Produces(MediaType.TEXT_PLAIN)
b.返回给client为json类型(application/json)
@Produces(MediaType.APPLICATION_JSON)
测试:
string类型:
-
@Path("/say")
-
@GET
-
@Produces(MediaType.TEXT_PLAIN)
-
public String say() {
-
System.out.println("hello world");
-
return "hello world";
-
}
json和bean类型:
-
@Path("test")
-
@GET
-
@Produces(MediaType.APPLICATION_JSON)
-
public Result<String> test() {
-
Result<String> result = new Result<String>();
-
result.success("aaaaaa");
-
return result;
-
}
-
@Path("bean")
-
@GET
-
@Produces(MediaType.APPLICATION_JSON)
-
public UserBean bean() {
-
UserBean userBean = new UserBean();
-
userBean.setId(1);
-
userBean.setUsername("fengchao");
-
return userBean;
-
}
3、@Consumes
@Consumes
与@Produces
相反,用来指定可以接受client发送过来的MIME类型,同样可以用于class或者method,也可以指定多个MIME类型,一般用于@PUT
,@POST
a.接受client参数为字符串类型
@Consumes(MediaType.TEXT_PLAIN) b.接受clent参数为json类型@Consumes(MediaType.APPLICATION_JSON)
其他注解:
@PathParam
获取url中指定参数名称:
[java] view plain copy
- <code class="language-java">@GET
- @Path("{username"})
- @Produces(MediaType.APPLICATION_JSON)
- public User getUser(@PathParam("username") String userName) {
- ...
- } </code>
@QueryParam
获取get请求中的查询参数:
-
@GET
-
@Path("/user")
-
@Produces("text/plain")
-
public User getUser(@QueryParam("name") String name,
-
@QueryParam("age") int age) {
-
...
-
}
如果需要为参数设置默认值,可以使用@DefaultValue
,如:
-
@GET
-
@Path("/user")
-
@Produces("text/plain")
-
public User getUser(@QueryParam("name") String name,
-
@DefaultValue("26") @QueryParam("age") int age) {
-
...
-
}
@FormParam
获取post请求中表单中的数据:
-
@POST
-
@Consumes("application/x-www-form-urlencoded")
-
public void post(@FormParam("name") String name) {
-
// Store the message
-
}
@BeanParam
获取请求参数中的数据,用实体Bean进行封装
-
@POST
-
@Consumes("application/x-www-form-urlencoded")
-
public void update(@BeanParam User user) {
-
// Store the user data
-
}
上一篇: SQL语句是如何执行的(mysql)