読者です 読者をやめる 読者になる 読者になる

Spring MVC と JAX-RS のちょっとした比較

Spring MVCJAX-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";

とか文字列で指定する仕様はビミョーー と思いました。