繁体   English   中英

在Web和移动应用程序中使用Spring的最佳方法

[英]Best way to use spring for Web and mobile application

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

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

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

如果还有其他更好的方法,请分享您的评论。

我也欢迎其他解决方案

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批注自动启用WebServices所需的要求。 例如: @ResponseBody

www.mybusinesscard.com.au/api->索引


//显示所有名片

www.mybusinesscard.com.au/api/businesscards->查看全部


//用于从表单保存

www.mybusinesscard.com.au/api/businesscard/save->保存卡

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM