最近在搞Android开发时, 遇到一个问题, 服务端小哥开发速度不给力啊! 一般我们在开发API时, 都是使用本地json来模拟, 但是这跟真实的情况还是有区别的.这篇文章来讲如何解决这个问题: 花5分钟撸个服务端, 让Android端在更接近真实的环境下开发!
花5分钟撸个服务端, 让Android端在更接近真实的环境下开发!
是的你没看错…
以前在搞后端开发的时候, 使用了 SpringMVC + Spring + Hibernate + Oracle + Bootstrap + jQuery + Tomcat 等技术框架. 我们这里不需要这么多. 我们只需要会点SpringMVC的知识就行了.
为什么说只要5分钟呢…很重要的一个原因是SpringBoot撸的是java代码, Android撸的也是, 我们在仿真API的时候, 直接把Android上的实体类复制到SpringBoot项目上就可以了…
1 . Intellij IDEA 这个是IDE, 要是懒得下载的话, 直接Android Studio也是可以的…点我下载
2 . Spring Boot 官网
可以直接从这上面撸demo下来, 有分Maven和Gradle两种. 但是访问这个网站速度特别慢, 可以直接下载我的demo来修改下就行了!
3 . 开启Intellij IDEA(IJ) 或者Android Studio(AS). 打开项目, 这里直接开启我的demo来看:
- 这里的Application里面有个main方法, 整个服务端从这里启动的, 按照普通java的运行方式启动就行了
- HelloController是我们的控制器(通过地址拦截进入不同的函数)
- Hello 是我们的实体类, 直接从安卓端撸过来的
这里图片比较小, 可以放大网页查看, 或者下载demo查看!
4 . 对着Application右键run起来, 这样就算成功了
5 . 开启浏览器, 输入地址 http://localhost:8080/hello/hi
. 默认端口是8080, /hello
是HelloController拦截的, /hi
是 public Hello hi()
函数拦截的, 它返回一个对象, 在我们页面上输出变成json
{"title":"这个是hi标题","content":"这个是hi内容"}
ipconfig
, osx: ifconfig
), 而不是localhost再输入地址http://localhost:8080/hello/get?content=这个是内容哦哈哈
, 得到的是
{"title":"这个是get标题","content":"这个是内容哦哈哈"}
输入地址http://localhost:8080/hello/hello
使用POST方式访问, 得到的是
{"title":"这个是hello标题","content":"这个是hello内容"}
其他的测试方式类似. 对于传输对象上来的数据, SpringBoot可以自动映射成对象. Android端在使用网络框架如Retrofit的时候, 直接使用@Body 就可以了, 参考:
服务端代码
@RequestMapping(value = "/set", method = RequestMethod.POST)
public Hello set(@RequestBody Hello hello) {}
Android请求代码
@POST("/hello/set")
Observable setHello(@Body Hello hello);
基本上, 用到的就是GET/POST 方式,
@RequestMapping
地址拦截映射@RequestParam
请求参数, get和post都是写这个@RequestBody
请求对象, 一般都是post上来的RestController
表示当前的控制器是一个结果控制器, 函数返回的是json@Controller
表示是一个页面类型的控制器, 返回字符串表示页面资源的名称, 这里我们用不到
@PathVariable
RESET风格的路径, 我们不需要使用它….
比如www.abc.com/news/{newsId}
, 对应的函数是
@RequestMapping("/news/{newsId}") public void get(@PathVariable String newsId)`
…
http://download.csdn.net/detail/ccslff/9762168