Web機能について説明します。
Spring Frameworkが提供するMVCフレームワークは、処理の中核を担うModel(M)と画面への表示・出力を担うView(V)、入力内容に基づいてModelとViewを制御するController(C)の3要素を組み合わせたMVCモデル2を採用し、Webアプリケーション開発を容易にする事を目的としたフレームワークです。
OSS版のSpring Frameworkは以下の2つのMVCフレームワークを持っています。
Spring Web MVCフレームワーク
Spring Portlet MVCフレームワーク
本製品が提供するSpring Frameworkでは、Spring Web MVCフレームワークのみをサポートします。
Webアプリケーション開発をサポートするSpring Web MVCフレームワークでは、以下の機能を提供します。
クライアントからのHTTPリクエスト→業務処理→処理結果表示までの画面遷移機能
クライアントからの入力データや業務処理の出力データの受け渡し機能
入力データの検証機能
処理結果をレンダリングするためのViewテクノロジとの連携機能
Springタグライブラリ
Spring Web MVCフレームワークは上記の機能によって、Webアプリケーション開発を支援します。
Spring MVCのWebアプリケーションで、Jacksonを利用してJSON形式のリクエストを受けることができます。
例
json2Viewの宣言:
@Configuration |
Json2Viewを利用して、JSONのresponseを戻します。
@RequestMapping(value="/user/{userId}", method=RequestMethod.GET) |
注) Contextが"json2View"という名前で宣言されたJson2Viewを探せるように、下記ViewResolverを宣言してください。
@Bean |
jQueryとJacksonの連携もできます。下記に例を示します。
例
<html>
<head>
<script type="text/javascript" src="xxx/jquery.js"></script>
<script>
function displayJson(result) {
$.each(result, function(field, value) {
var newTh = $("<th></th>").text(field);
$("#fields").append(newTh);
var newTd = $("<td></td>").text(value);
$("#values").append(newTd);
});
}
$(document).ready( function() {
$.getJSON("xxx/user/ユーザーID", function(result) {
displayJson(result);
});
});
</script>
</head>
<body>
<table border="1">
<tr id="fields"></tr>
<tr id="values"></tr>
</table>
</body>
</html> |
Java EE 7の標準機能であるJava API for WebSocketと連携できます。
Spring FrameworkのWebSocket連携機能は、Spring MVCベースの実装ができます。また、SockJSを使用することで、WebSocketに対応していないブラウザでもWebSocket連携ができます。
WebSocket連携を使用することで、Spring MVCと同様の方法でWebアプリケーションの実装が可能です。
例
Spring Frameworkで動作するWebSocketアプリケーションを作成するためには、下記のアプリケーションが必要です。
ハンドラークラス
設定クラス
ハンドラークラスは、発行されたイベントに対応した処理を実装します。
送信を行うデータに応じてTextWebSocketHandler、BinaryWebSocketHandlerを継承して作成してください。
ハンドラークラスの作成:
テキストデータを扱う場合
import org.springframework.web.socket.TextMessage; |
バイナリデータを扱う場合
import org.springframework.web.socket.TextMessage; |
設定クラスには、WebSocket上のリクエストを処理するハンドラーを登録する必要があります。WebSocketConfigurerインターフェースを実装して、クラスにConfigurationアノテーションとEnableWebSocketアノテーションを設定してください。
設定クラス:
import org.springframework.context.annotation.Configuration; |