天天看點

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的工作原了解析

繼續閱讀