SpringMVCのRESTfullへのサポートについて


本論文で研究したのは主にSpringMVCのRESTfullに対するサポートに関する内容であり、具体的には以下の通りである。
RESTfulアーキテクチャとは、現在流行しているインターネットソフトウェアアーキテクチャのことである。それは構造がはっきりしていて、標準に合っています。分かりやすくて、広がりやすいです。RESTfulアーキテクチャはurlを規範化し、RESTfulフォーマットを書くurlはどのようなものですか?私たちが普通に要請したurlはこのようなものです。
http://...../xxx.action?id=001&type=aaa
RESTのurlスタイルはどうですか?一般的には、
http://..../xxx/001
だからRESTは明らかな特徴があります。urlをシンプルにして、パラメータをurlを通してサーバーに伝えます。springmvcもこのRESTスタイルのurlをサポートしています。私達はcontrolerを定義してテストしてみます。

//      ,  json,  RESTful
@RequestMapping("/itemsView/{id}")
public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id) throws Exception {
  ItemsCustom itemsCustom = itemsService.findItemsById(id);
  return itemsCustom;
}
@ResponseBodyitemsCustomをjsonに変換するための注釈であり、@PathVariableはRESTに関する注釈であり、@RequestMapping(value=”/ itemsView/{id}”)の「id」は一つのプレースホルダを表しています。この中から伝わった値は@PathVariableによってマークされたモダリティに伝えられます。モダリティとプレースホルダの変数が同じなら、再注釈で指定しなくてもいいです。このプレースホルダの変数(すなわちid)を指定します。このようにすれば、パラメータはurlを通して形参に伝わることができます。
しかし、これはまだいけません。フロントエンドコントローラにRESTを配置する必要があります。

<!--   springmvc      DispatcherServlet,REST   -->
<servlet>
  <servlet-name>springmvc_rest</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/springmvc.xml</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>springmvc_rest</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>
ブロックはすべてのurl(/)であり、この構成は前に配置されたフロントエンドコントローラと競合しないで共存できます。このように設定すれば、ブラウザに入力できます。http://localhost:8080/SpringMVC_Study/items View/1は、ブラウザに戻ったデータをテストします。jsonのデータが戻ります。
しかし、上の配置を使うと、すべてのurlをブロックします。静的な資源に対してもブロックしますので、Displatch Servletも静的な資源を解析します。しかし、こうするとエラーが発生しますので、静的な資源を解析しないように設定します。例えば:

<!--       ,  js,css,img... -->
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<mvc:resources location="/img/" mapping="/img/**"></mvc:resources>
他の静的資源があれば、静的資源を解析しないように設定し、静的資源を訪問する時に直接アクセスすればいいです。
締め括りをつける
以上、本文ではSpringMVCのRESTfullに対するサポートの全部の内容についてお話ししました。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。