写点什么

Spring Mobile 1.0 发布

  • 2012-07-04
  • 本文字数:1831 字

    阅读完需:约 6 分钟

近日,SpringSource 发布了 Spring Mobile 1.0 。Spring Mobile 包含了 Spring MVC 的扩展,有助于移动 Web 应用的开发。

Spring Mobile 将服务端的开发模式带到了移动 Web 开发上来,它能够在服务器端检测设备并赋予开发者根据设备来处理不同内容的能力。这与 CSS3 Media Queries 和响应式 Web 设计技术形成了对比,后者的检测与渐进增强都是在客户端完成的。

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 之后将当前的 Device 作为参数传递给某个 @Controller 方法。

站点首选项管理

用户可以通过站点首选项管理指出他首选的是移动站点抑或常规站点。Spring Mobile 的实现位于 StandardSitePreferenceHandler 中,它支持基于查询参数的站点首选项标识以及可插拔的 SitePreference 存储。如果用户没有明确指定 SitePreference,那么 Spring Mobile 会根据用户设备使用一个默认值。指定的站点首选项会存储在 SitePreferenceRepository 中,默认实现会在客户端 cookie 中保存首选项。

要想启用站点首选项管理,请在 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 后将当前的 SitePreference 以参数的形式传递给某个 @Controller 方法。

复制代码
<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”工厂方法会构建一个 SiteSwitcher,它会将移动用户重定向至 m.${DOMAIN}。“dotMobi”工厂方法会构建一个 SiteSwitcher,它会将移动用户重定向至 ${DOMAIN - TLD}.mobi。“urlPath”工厂方法会构建一个 SiteSwitcher,它会将移动用户重定向至 ${DOMAIN}/${MOBILE_PATH}。下面的示例介绍了如何配置 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 参考手册来了解更多信息。要想上手,请下载发布包或是添加 Maven 依赖。

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

Spring Mobile示例位于GitHub 上。

查看英文原文: Spring Mobile 1.0 Released

2012-07-04 10:022510
用户头像

发布了 88 篇内容, 共 269.0 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

让Kimi像人类思考的“Kimi探索版“已开启灰度内测!GPT-o1贡献者之一宣布离职|AI日报

可信AI进展

MES系统如何实现生产过程的全流程追溯

万界星空科技

产品管理 mes 万界星空科技 产品追溯 车间管理

苹果Mac电脑想要实现双系统运行,Parallels Desktop虚拟机来帮你!

Rose

Photoshop2021中文版 附ps2021破解补丁 及一键替换天空使用教程

Rose

几大远程软件怎么选?为何我推荐使用向日葵?

科技热闻

Bartender 4:图标显示切换大变样,还能在菜单栏自定义文字

Rose

公开课 | 金九银十,测试开发面试秘籍大公开!

测试人

软件测试

国内首个专业领域知识增强服务框架 KAG 技术报告,助力大模型落地垂直领域

可信AI进展

人工智能

Mac窗口管理软件合集|告别混乱屏幕,一切井井有条。

Rose

NocoBase 与 Appsmith:哪个低代码平台更适合你?

NocoBase

低代码 开发工具 无代码

探索5G工厂:技术赋能下的工业革新

万界星空科技

智能制造 mes 万界星空科技mes 5G智能工厂

实测9款AI文件助手!原来最好用的并不是全网称赞的谷歌NotebookLM...

可信AI进展

人工智能、

OpenHarmony技术引领筑生态 万物智联创未来

最新动态

传统IT设备包括哪些?堡垒机可以全部管理吗?

行云管家

网络安全 堡垒机

如何检查Mac上是否启用了SIP系统完整性保护

Rose

photoshop 运行弹窗This non-genuine Adobe app has been disabled

Rose

【论文速读】| AutoSafeCoder:通过静态分析和模糊测试保障LLM代码生成安全的多智能体框架

云起无垠

线上事故风险解读之数据库篇

巧手打字通

MySQL 数据库 架构 后端 经验总结

Apache Doris 2.0.15 版本发布

SelectDB

数据库 搜索引擎 数据仓库 大数据 开源 实时分析

百度智能云新一代云原生产品加速 AI 原生应用落地

Baidu AICLOUD

云原生 AI 原生

Ulysses教程_让Ulysses更便捷的使用技巧

Rose

曲面LED屏:视觉革新与使用优势的深入分析

Dylan

技术 视觉 LED display LED显示屏 市场

iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例

阿里巴巴云原生

阿里云 云原生 iLogtail

autocad2021 mac破解版安装教程-AutoCAD 2021mac版自带中文

Rose

如何绘制族谱?这款Mac家谱软件MacFamilyTree可以轻松帮你绘制百年家族谱!

Rose

数据为王:人工智能如何引领软件开发新时代

天津汇柏科技有限公司

人工智能 软件开发

有限元分析边界条件、节点、收敛分别是什么意思?

思茂信息

节点 有限元分析 边界条件 收敛

地平线双目深度估计参考算法 StereoNetPlus 优化思路解读

地平线开发者

自动驾驶; 算法、

眉山等保测评机构有哪些?在哪里?

行云管家

等保 眉山

Autodesk Maya 2025 for mac完美破资源 玛雅2025下载 兼容M及Intel芯片

Rose

JProfiler for Mac(Java开发分析软件)v14.0.0永久激活版

Rose

Spring Mobile 1.0发布_Java_Bienvenido David_InfoQ精选文章