【问题标题】:Best way to use spring for Web and mobile application将 Spring 用于 Web 和移动应用程序的最佳方式
【发布时间】:2015-12-31 09:51:40
【问题描述】:

我是网络开发的新手。我计划创建一个 Web 服务,作为网站和移动应用程序的后端。我想知道是否可以使用相同的方法返回不同类型的数据。

例如: 如果我使用 http://somewebsite/getdetails.jsp 应该给我和 modelView 返回类型,http://somewebsite/getdetails.json 应该给模型 json 格式。

我不想创建两个不同的控制器来处理这个问题。

如果还有其他更好的方法也请分享您的 cmets。

我也对替代解决方案持开放态度

【问题讨论】:

    标签: json spring model-view-controller mobile


    【解决方案1】:

    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 -> 保存卡片

    【讨论】:

      猜你喜欢
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 2017-06-26
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多