Spring MVC と JAX-RS のちょっとした比較
Spring MVCとJAX-RSってRESTful web servicesにおいて比較される対象になるかと思います
(でもTwitterのタイムライン観ててもJAX-RSはよく出てくるけど、Spring MVCはまったく出てこない)。
APIとかみてるとSpring MVCの方がよさげに見えます。パフォーマンスとかは分かりませんが。
で足し算処理のちょっとした比較
Spring MVC
@RequestMapping("/add") @ResponseBody public Integer add(@RequestParam Integer arg1, @RequestParam Integer arg2) { return arg1 + arg2; }
JAX-RS
@Path("add") @GET public String add(@QueryParam("arg1") Integer arg1, @QueryParam("arg2") Integer arg2) { return Integer.toString(arg1 + arg2); }
Spring MVCのRequestParamアノテーションとJAX-RSのQueryParamアノテーションの両方とも「リクエストパラメータを渡してください」という指示する役割なんですが、JAX-RSの方はアノテーションの属性でリエクスとパラメータを指定する必要があって、Spring MVCの方は属性が省略できてデフォルトでメソッドパラメータ名を使ってくれます。
リクエストパラメータをBeanにバインドするのもSpring MVCの方が楽そうだし。
ただ、Spring MVCのフォワード、リダイレクトするのに、
return "forward:/hello.html"; // とか return "redirect:/hello.html";
とか文字列で指定する仕様はビミョーー と思いました。