zoukankan      html  css  js  c++  java
  • @Path注解

    最近用到的一个项目,看到Controller控制层、Method方法都是通篇的@Path注解,由于之前并没有使用过该注解,故记此篇。

    首先看一下项目中的使用方式:

    @Path("clientWeb")
    public class ClientWeb {

        @POST
        @Path("/getData")
        public String getData(@QueryParam("start") Integer start,@QueryParam("limit") Integer limit) {
            return "xxx"
        }
    }

    如上我们可以看到,@Path注解可以标记在类名之上,也可以标记在方法名上。该注解接收一个value参数,表示定义资源的地址。

    另外,资源地址相同,但是HTTP方法不同的两个方法是完全两个不同的REST接口,HTTP方法和资源地址相结合在一起才可以完成对一个资源的定位。

    点进@Path注解后查看其源码如下:

    package javax.ws.rs;
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    @Target({ElementType.TYPEElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Path {
        String value();
    }

    我们可以发现其属于 javax.ws.rs 包,java.ws.rsjax-rs 规范中定义的包名,什么鬼?

    jax-rs 全称是:java API for RESTful Services,这是一套规范,规范文档

    简单点说就是这套规范是为构建restful服务的 [restful可以理解为web接口],我们知道Spring自带了对restful的支持,但是呢,Spring并没有遵循这个协议,言外之意就是不具有移植特性,怎么讲?

    举例:JPA大家应该了解吧,采用JPA开发规范的话,很容易实现MysqlOracle等数据库的迁移,因为符合规范。

    尽管Spring并不遵循这个协议,但还是Spring好用。

    再回到jax-rs,目前能够实现jax-rs标准的框架有很多,比如:

    • Apache CXF,开源的Web服务框架。
    • Jersey, 由Sun提供的JAX-RS的参考实现。
    • RESTEasy,JBoss的实现。
    • Restlet,由Jerome Louvel和Dave Pawson开发,是最早的REST框架,先于JAX-RS出现。
    • Apache Wink,一个Apache软件基金会孵化器中的项目,其服务模块实现JAX-RS规范。

    说这么多,其实是想get一点,就是在当下都用Spring的环境下,还是有许多可以实现web服务的,重新再来看@Path吧。

    @Path就当@RequestMapping来用,如下所例。

    @Path("/clientWeb")
    public class  ClientWeb{    
        @GET    
        @Path("/getData")
        public String getData(String params) {
            return “xxx";
        }
    }

    访问路径为:http://:/<应用域>/clientWeb/getData

    参考:https://segmentfault.com/q/1010000002484009/a-1020000002484552


    我创建了一个用来记录自己学习之路的公众号,感兴趣的小伙伴可以关注一下微信公众号:niceyoo

  • 相关阅读:
    document.getElementById("mytxt").style.left=""style.left在IE的FF中注意
    asp.net 用户控件中 使用相对路径的解决方法 图片路径问题(用户控件、图片路径) ,ResolveUrl
    探索 Block (一) (手把手讲解Block 底层实现原理)
    iOS 多线程开发 (概念与API简介)
    iOS 性能小点
    iOS runtime (二)(runtime学习之AutoCoding源码分析)
    探索 NSRunLoop (二)(NSRunLoop 自己动手实现SimpleRunLoop)
    iOS NSNotificationCenter (自己实现一个通知中心XMCNotificationCenter)
    iOS runtime (三)(runtime学习之YYModel源码分析)
    iOS runtime(一)(runtime 分析理解)
  • 原文地址:https://www.cnblogs.com/niceyoo/p/11862821.html
Copyright © 2011-2022 走看看