写点什么

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:022550
用户头像

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

关注

评论

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

如何用低代码的能力提升软件厂商的定制化需求收益?从成本中心到利润引擎的商业模式重构

星云低代码中间件

软件开发 低代码 开发工具 业务系统

微店商品详情API助力多店铺管理和竞品监控

Datafox(数据狐)

微店数据接口 微店API 微店数据采集 微店商品详情API

Hudi系列:表类型(Table & Query Types)

京东科技开发者

2025年YashanDB技术创新热点全面扫描

数据库砖家

企业如何高效利用全球社交媒体监测软件做市场洞察?

沃观Wovision

社交媒体 舆情监测 海外舆情监控 沃观Wovision

2025年YashanDB数据库的发展趋势与应用前景

数据库砖家

看球总刷比分?好奇数据哪来的?你该认识一下「体育API」了

ggscoreLynne

Hudi系列:Hudi核心概念之索引(Indexs)

京东科技开发者

2024年YashanDB的创新特性及应用前景

数据库砖家

2025年YashanDB的发展趋势与行业前景

数据库砖家

图解AI核心技术:大模型、RAG、智能体、MCP

京东科技开发者

2025年YashanDB技术趋势:你需要关注的5个领域

数据库砖家

2025年YashanDB数据库的未来趋势与发展方向

数据库砖家

2025年YashanDB的具体发展趋势

数据库砖家

【隐语SecretFlow用户案例】亚信科技构建统一隐私计算框架探索实践

隐语SecretFlow

区块链 隐私计算 可信数据空间 secretflow

2023年YashanDB数据库用户体验及反馈总结

数据库砖家

2025年YashanDB技术发展趋势全面剖析

数据库砖家

2025年YashanDB数据库发展趋势及行业影响分析

数据库砖家

2025年YashanDB发展趋势与市场前景

数据库砖家

2025年YashanDB技术创新的前瞻性探讨

数据库砖家

2025年YashanDB数据库的未来应用趋势

数据库砖家

AI应用种类及开发

北京木奇移动技术有限公司

AI技术开发 软件外包公司 AI应用开发

2025年YashanDB的技术创新与市场格局展望

数据库砖家

2025年YashanDB的行业发展趋势与启示

数据库砖家

> search("2025年YashanDB对中小企业的影响")

数据库砖家

2025年YashanDB数据库安全合规趋势与策略建议

数据库砖家

2025年YashanDB数据库功能更新及展望

数据库砖家

2025年YashanDB的技术演变与发展方向

数据库砖家

2025年YashanDB的未来趋势及市场影响

数据库砖家

2025年YashanDB市场机遇与挑战

数据库砖家

OpenAI推出Apps SDK,你的企业App跟上了吗?

FinClip

AI App

Spring Mobile 1.0发布_Java_Bienvenido David_InfoQ精选文章