BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Spring Mobile 1.0がリリース

Spring Mobile 1.0がリリース

原文(投稿日:2012/05/31)へのリンク

SpringSourceは、Spring Mobile 1.0をリリースした。 Spring Mobileには、モバイルWebアプリケーションの開発に役立ちSpring MVCのへの拡張が含まれてい る。

Spring Mobileは、サーバー側でデバイスを検知し、開発者がデバイスに応じた異なるコンテンツを提供できるにする。これは、CSS3 メディアクエリ とResponsive Web Design 技術を使うのとは対照的である。この方法では、検知や漸進的な改善は、クライアント側でなされる。

Spring Mobileは次の3つの主要な機能を備えている。

デバイス解決

デバイス解決は、要求を発信したデバイスを決定するためにHTTPリクエストを分析するプロセスのことでる。これは通常、User-Agentヘッダと他のリクエストヘッダーを調べることによって達成できる。 モバイルとデスクトップ・ブラウザを別々に処理する必要がある場合に便利だ。 有効にするには、DispatcherServletコンフィグレーションに DeviceResolverHandlerInterceptorを追加する。

<mvc:interceptors>
	<bean class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor" />
</mvc:interceptors>

デバイス解決には、LiteDeviceResolverが既定で使われる。これは WordPress Mobile Packの検知アルゴリズム を基にしている。DeviceResolverHandlerInterceptorのコンストラクタ引数を注入することにより、別のDeviceResolver実装 をプラグインできる。WURFLのようなより洗練されたデバイスのリゾルバは、画面サイズ、製造元、モデル、または優先マークアップなどの特定のデバイスの機能を識別することができる。

DeviceUtils.getCurrentDevice()を呼び出すことによって、現在のデバイスを取得することができる。また、DeviceWebArgumentResolverを設定した後に@ Controllerのメソッドのいずれかに、引数として現在のデバイスを渡すことができる。

<mvc:annotation-driven>
	<mvc:argument-resolvers>
		<bean class="org.springframework.mobile.device.DeviceWebArgumentResolver" />
	</mvc:argument-resolvers>
</mvc:annotation-driven>

サイトの優先順位の管理

サイトの優先順位の管理によって、ユーザーはモバイルか通常のサイトのどちらを好むかを示すことができる。 Spring Mobileの実装は、クエリパラメータベースのサイトの優先表示、プラグイン可能なSitePreferenceストレージをサポートStandardSitePreferenceHandlerである。SitePreferenceがユーザーによって明示的に示されていない場合は、デフォルトではユーザーのデバイスに基づいて導出され る。ユーザーが示したサイト設定は、SitePreferenceRepositoryに格納され、デフォルトの実装では、クライアント側のクッキーに格納する。

サイトの優先順位の管理を有効にするには、DispatcherServletコンフィギュレーションにSitePreferenceHandlerInterceptorを追加する。

<mvc:interceptors>
	<bean class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor" />
	<bean class="org.springframework.mobile.device.site.SitePreferenceHandlerInterceptor" />
</mvc:interceptors>

ユーザーは、サイト優先順位を site_preferenceクエリパラメータを送信するリンクをクリックすることでも、指定することができる。

<a href="?site_preference=normal">Normal</a> | <a href="?site_preference=mobile">Mobile</a>

指定されたSitePreferenceは "currentSitePreference"という名前のリクエスト属性として使用可能 である。また、SitePreferenceWebArgumentResolverを設定した後に、@ Controllerのメソッドの1つに引数として現在のSitePreferenceを渡すことがでる。

<mvc:annotation-driven>
	<mvc:argument-resolvers>
		<bean class="org.springframework.mobile.device.DeviceWebArgumentResolver" />
		<bean class="org.springframework.mobile.device.site.SitePreferenceWebArgumentResolver" />
	</mvc:argument-resolvers>
</mvc:annotation-driven>

サイト切り替え

サイトの切り替えは、デバイスと指定されたサイトの優先度に基づいてユーザーを最も適切なサイトに切り替える機能だ。現在は、3つの SiteSwitcher(サイト切り替え)実装がある。"mDot"ファクトリメソッドは、モバイルユーザーを m.${DOMAIN}にリダイレクトするSiteSwitcherを 構築する。 "dotMobi"ファクトリメソッドは、モバイルユーザーを ${DOMAIN - TLD}.mobiにリダイレクトするSiteSwitcherを 構築する。"urlPath"ファクトリメソッドは、モバイルユーザーを ${DOMAIN}/${MOBILE_PATH}にリダイレクトするSiteSwitcherを 構築する。次は、mDot SiteSwitcherを構成する方法の例だ。

<mvc:interceptors>
	<bean class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor" />
	<bean class="org.springframework.mobile.device.switcher.SiteSwitcherHandlerInterceptor" factory-method="mDot">
		<constructor-arg value="domain.com" />
	</bean>
</mvc:interceptors>

詳細については、4分の Spring Mobileスクリーンキャストを見て、Spring Mobile Reference Manualを読んで欲しい。使い始めるには、リリース配布をダウンロードするか、Maven依存関係を追加する。

<dependency>
	<groupId>org.springframework.mobile</groupId>
	<artifactId>spring-mobile-device</artifactId>
	<version>1.0.0.RELEASE</version>
</dependency>

Spring Mobileのサンプルは、GitHub上で見つけることができる。

この記事に星をつける

おすすめ度
スタイル

BT