Spring 4.0 / Spring Boot 让您可以轻松实现这一目标。我目前正在为基于浏览器的客户端开发移动和后端的 Web 服务 (API),我只是在 URL @RequestMapping("/api") 下简单地拆分移动 API。此外,Spring 允许您轻松实现基于 RESTful url 的应用程序。我建议您为 API 和 Web MVC 使用两个不同的控制器,因为它可以确保两个不同逻辑之间的完全分离。例如
你真的想实现类似以下的东西吗?
@SuppressWarnings("unchecked")
public Map<Object, Object> test(@RequestParam(value="mobileyes") boolean mobile){
if(mobile){
Map<Object, Object> m = new HashMap<Object, Object>();
m.put("test", "test")
return m;
} else {
ModelAndView mv = new ModelAndView();
mv.addObject("test", "test");
mv.setViewName("test");
return (Map<Object, Object>) mv;
}
}
上面的例子可能有效,但很难看,而且在不久的将来肯定会导致维护灾难。
这是我使用 Spring Boot 的 Spring MVC 整体结构:
桌面和移动浏览器访问的普通 URL
这些控制器使用
@Controller 注解因为它不会自动启用@ResponseBody
www.mybusinesscard.com.au/ -> 索引
//显示所有名片
www.mybusinesscard.com.au/businesscards -> 查看全部
//用于从表单中保存
www.mybusinesscard.com.au/businesscard/save -> 保存卡片
以下控制器示例适用于移动 API:
以下控制器使用 @RestController 注释自动启用 Web 服务所需的要求。例如:@ResponseBody
www.mybusinesscard.com.au/api -> 索引
//显示所有名片
www.mybusinesscard.com.au/api/businesscards -> 查看全部
//用于从表单中保存
www.mybusinesscard.com.au/api/businesscard/save -> 保存卡片