如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

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

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

关注

评论

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

怎样做YashanDB读写分离,提高访问效率?

数据库砖家

怎样做YashanDB日志分析,快速定位故障根因

数据库砖家

YashanDB数据库安装与配置的详细步骤

数据库砖家

怎样做YashanDB数据库负载均衡实现高性能?

数据库砖家

怎样做YashanDB利用机器学习优化查询性能

数据库砖家

如何配置YashanDB连接池以提升应用响应速度

数据库砖家

怎样做YashanDB容灾备份策略,保障数据安全

数据库砖家

正规合肥等保测评机构名单汇总2025

行云管家

网络安全 等保 等保测评

如何进行YashanDB数据库的批量导入导出数据操作

数据库砖家

怎样做YashanDB数据库容量规划技巧

数据库砖家

怎样做YashanDB版本回滚,保障业务不受影响

数据库砖家

YashanDB定制化报表开发实用技巧

数据库砖家

怎样做YashanDB容灾备份,保障业务连续性

数据库砖家

YashanDB数据库版本更新与兼容性管理指南

数据库砖家

怎样做YashanDB数据库日志分析提升系统稳定性

数据库砖家

怎样做YashanDB融合区块链技术保障数据安全

数据库砖家

怎样做YashanDB实现数据库高可用架构

数据库砖家

原点安全入选中国信通院《数字安全护航技术能力全景图》多个细分领域

原点安全

数据安全 中国信通院 数据安全平台

订单初版—支付和履约实现的重构文档

电子尖叫食人鱼

架构

怎样做YashanDB二级索引配置,加快查询速度

数据库砖家

怎样做YashanDB高并发处理,保障业务流畅运行?

数据库砖家

YashanDB实现多用户并发控制的技术分析

数据库砖家

怎样做YashanDB数据接入标准流程,确保高效稳定

数据库砖家

如何配置YashanDB连接池以提升应用响应速度

数据库砖家

YashanDB数据加密技术应用

数据库砖家

深刻理解数据库安全防范的意义以及措施

行云管家

数据安全 数据库安全

怎样做YashanDB实现数据分片优化存储

数据库砖家

怎样做YashanDB实现数据库资源自动扩展

数据库砖家

怎样做YashanDB数据导入导出,提升操作便捷性?

数据库砖家

YashanDB数据库定期维护和优化计划

数据库砖家

YashanDB数据库开发环境搭建详细指南

数据库砖家

Spring Mobile 1.0发布_Java_Bienvenido David_InfoQ精选文章