Resteasy常用注解

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 ,用以声明根路径, 

@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"/>  
	    	











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值