javax.ws.rs.Path注解@Path的工作原理解析

这个annotation和Spring里的@RequestMapping作用完全一样。下图是Spring里的annotation:


javax.ws.rs.Path注解@Path的工作原理解析


在Eclipse里单击练习代码的@Path:


javax.ws.rs.Path注解@Path的工作原理解析


发现这个path的value还支持正则表达式:


javax.ws.rs.Path注解@Path的工作原理解析


所以我用了这样一个正则表达式:


javax.ws.rs.Path注解@Path的工作原理解析


测试成功:


javax.ws.rs.Path注解@Path的工作原理解析


用这个测试失败,这是我期望的:http://localhost:9498//hello/3

从Eclipse的output里还找到了框架解析这个@Path的入口代码,一举两得。在这个入口方法设置断点之后,

javax.ws.rs.Path注解@Path的工作原理解析



然后就可以开始debug了:


javax.ws.rs.Path注解@Path的工作原理解析


正则表达式是怎么被evaluate的

我们在应用代码里指定的正则表达式总归要在某个地方被框架用到,通过上面的方法已经可以设断点debug了:

这就是我们应用指定的正则表达式:


javax.ws.rs.Path注解@Path的工作原理解析


这是我测试传入的路径:/3, 显然正则表达式instance的match()方法返回false,


javax.ws.rs.Path注解@Path的工作原理解析


因此最后是404 error,


javax.ws.rs.Path注解@Path的工作原理解析javax.ws.rs.Path注解@Path的工作原理解析

javax.ws.rs.Path注解@Path的工作原理解析

上一篇:阿里云Kubernetes SpringCloud 实践进行时(1): 分布式服务注册与发现


下一篇:FFmpeg内存IO模式(内存区作输入或输出)