Resteasy常用注解
2018-01-20 20:35
162 查看
1.常用注解
RESTEasy以jaxrs-api.jar包为基础对JAX-RS进行实现,该包中包含了JAX-RS规范所声明的注解。
2注解 描述 参数
@ApplicationPath 标注资源的root路径,加载子资源文件 value
@Path 标注普通资源路径 value
@GET 获取
@POST 添加
@PUT 整体更新
@PATCH 部分更新(resteasy中并没有)
@DELETE 删除
@PathParam 资源路径参数 value
@QueryParam 资源请求参数 value
@MatrixParam 标注请求资源key-value类型的参数 value
@FormParam 标注表单参数 value
@Encoded 标注需要UrlEncode的元素
@Context 在参数列表注入系统级别参数javax.ws.rs.core.HttpHeaders, javax.ws.rs.core.UriInfo, javax.ws.rs.core.Request, javax.servlet.HttpServletRequest, javax.servlet.HttpServletResponse, javax.servlet.ServletConfig, javax.servlet.ServletContext, and javax.ws.rs.core.SecurityContext objects
@CookieParam 标注需要获取的cookie参数 value
@Consumes 指定client请求数据类型,与client的Content-Type匹配 value[]
@Produces 指定client接收数据类型,与client的Accept匹配 value[]
@HeaderParam 标注需要获取的header参数 value
@DefaultValue 标注默认值 value
@Form 标注表单对象,对象中的表单属性需要@FormParam进行标注3 @ApplicationPath
@ApplicationPath("operations") public class OperationApplication extends Application { private Set<Object> singletons=new HashSet<Object>(); public OperationApplication(){ singletons.add(new Library()); singletons.add(new BookStoreImpl()); } @Override public Set<Object> getSingletons(){ return singletons; } }标注类级别注解
@ApplicationPath,用以声明根路径,
4 @Path是类与方法级别
@Override
@Path("/MobileRegist3/{obj}")
@GET
public JSONObject MobileRegist3(@PathParam("obj") String obj1) throws Exception{
JSONObject jsonObject=new JSONObject();
try {
PageData pd = new PageData();
pd.put("HCRYID", "20224");
Integer SJXZQH = FindSJXZQHBYXZQH(pd);
System.out.println(SJXZQH);
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.toString());
}
jsonObject.put("a", "qqq");
return jsonObject;
}5 @Path,@GET,@PUT,@DELETE,@POST
@GET,@PUT,@DELETE,@POST为方法级别 这四个注解是http rest注解,用在实际动作上
6 @PathParam,@QueryParam
@PUT
@Path("/book/{isbn}")
public void addBook(@PathParam("isbn") String isbn, @QueryParam("name") String name){
System.out.println("add the book with name : "+name+", isbn : "+isbn);
}
@DELETE
@Path("/book/{var: .*}/{isbn}")
public void removeBook(@PathParam("isbn") String isbn,@PathParam("var") String var){
System.out.println(var);
System.out.println("the book with isbn : "+isbn+" has been removed");
}通过声明
@Pathparam参数名可以更方便的获取路径上的参数,
路径参数可以直接声明,也可以声明后通过正则进行约束,如
@Path("/book/{var: .*}/{isbn}"),这里声明了var和isbn两个路径参数,var参数会捕获输入路径中满足冒号后正则的部分作为value
@POST
@Path("/book{multi}")
public void postBook(@PathParam("multi") PathSegment multi){
MultivaluedMap<String,String> paramMap =multi.getMatrixParameters();
Set<String> set=paramMap.keySet();
for (String key:set){
System.out.println(key+" : "+paramMap.get(key));
}
}7示例:
@Component
@Path("/testAPI")
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces(MediaType.APPLICATION_JSON+";charset=UTF-8")
public class testServiceImp implements testService {
@Override
@Path("/test/{id: \\d+}")
@GET
public String testMethod(@PathParam("id") String id) {
String result="other";
if("123".equals(id)){
result="456";
}
return result;
}
}
@Override @Path("/MobileRegist") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON,MediaType.APPLICATION_FORM_URLENCODED}) @POST public JSONObject MobileRegist(String obj) throws Exception{ JSONObject jsonObject=new JSONObject(); PageData pd = new PageData(); String[] str = new String[50]; str = obj.split("&"); for (int i = 0; i < str.length; i++) { String[] split = str[i].split("="); pd.put(split[0], split[1]); } try { MobileRegistMapper.MobileRegistADD(pd); jsonObject.put("Result", "success"); jsonObject.put("SQZT", "0"); } catch (Exception e) { // TODO: handle exception jsonObject.put("Result", "failed"); jsonObject.put("SQZT", "0"); } return jsonObject; }
<dubbo:service interface="com.diit.service.rest.test.testService" ref="testAPI" protocol="rest,dubbo" timeout="1200000"/>
<bean id="testAPI" class="com.diit.service.rest.test.testServiceImp"/>
相关文章推荐
- Spring Boot 集成 resteasy篇 — jax-rs常用注解介绍
- 因为缺失POST GET注解而导致Failed processing arguments of org.jboss.resteasy.spi.metadata.ResourceLocator
- SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍(转)
- Rest服务开发指南—常用注解说明
- SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍
- SpringBoot中常用注解@Controller/@RestController/@RequestMapping的区别
- RESTEasy配置以及注解
- springBoot Restfull 常用注解
- RESTEasy:@FormParam、@PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixParam说明
- 详解Spring MVC 4常用的那些注解
- JPA之常用 基本注解
- Spring单元测试,内嵌RESTEasy服务的实现
- springmvc参数绑定常用注解
- Java中Junit4中常用注解的说明
- 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六): 一些常用的数据库 注解
- Spring常用注解
- SpringBoot各种常用注解
- springmvc常用注解标签详解
- spring常用的一些注解以及注解注入总结
- gcc常用命令注解