前言
作为一名优秀的(自认为)Android开发工程师,在工作之余研究一些新的有趣的技术是我的乐趣,每当有一些想法就会想去尝试实现,demo敲的多了就产生了自己制作一款个人的app的想法。但是如今互联网的发展,没有后端支持的单机app很难有亮点,每每一些有趣的想法终止于没有后端api的支持,多次之后终于打定主意,学习后端接口的开发,独立完成app前后端的实现。
后端的语言可选的有很多种,Android开发的我当仁不让地选择Java作为后端开发语言,可以节省不少时间。作为出现了一门十多年的语言,java在后端的发展也经历几个代表性的时代:早期的JSP+Servlet+JavaBean,之后的SSH(Spring+Struts2+Hibernate),以及现如今的SSM(Spring+SpringMVC+MyBatis)。
当你搜索“后端开发”,上述这些词很容易出现在搜索结果中,我也是看了很多资料才理清它们之间的关系。网络上搜索结果有很多JSP+Servlet+JavaBean以及SSH相关的教程,但我最终还是选择的最新的技术方案:SSM,新技术能取代老技术总有它特别的优势,要不更强大,要不使用更简便,因此最新的成熟技术总会是好的。并且工具也没有选择Eclipse或者MyEclipse,而是IDEA,虽然对电脑的配置要求更高,但是在代码提示以及项目管理方面有着很大的优势,而且Android studio也是基于IDEA,界面和快捷方式都是一样的,非常方便android开发者的适应过度。
环境搭建
一开始我也是跟随 这篇文章 搭建环境并运行了第一个web项目。新建项目时用spring boot 的方式,用于取代传统Spring项目繁琐的xml配置,其配置全部可以通过注解的形式进行配置,后续会具体说明。
附带一说:IDEA是需要付费的,而且一年的价格还不便宜,表示买不起啊!!当时找到了在线免费生成IntelliJ IDEA 15.0注册码 由于我还在30天试用期,不确定是否真的有用,但是设置后确实没有弹出提示付费的通知,但愿是有效的。
搭建环境的过程中也遇到一些问题,如果你也遇到了,可以看一下:
Mac 安装mysql问题
如果你对sql语句不熟悉,也可以看下:常用SQL语句汇总
Workbench之类的mysql可视化工具也是必不可少的,可以非常方便地操作数据库。
调试接口的工具Postman也是非常好用的
开始项目
开始之前最好像了解下MVC设计模式,SpringMVC流程,如:
SpringMVC流程架构图
Spring MVC 流程图
@Controller
用于标记类,表示这个类是SpringMVC的一个Controller,通常于@RequestMapping配合使用,指定匹配的路径。
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloContorller {
@RequestMapping("/hello")//指定匹配路径
@ResponseBody//将返回数据直接放入responseBody中
public String helloWorld() {
return "hello world!";
}
}
由于我们要做的事app的后端接口,因此加上了@ResponseBody注解。如果不清楚responseBody可以看下http协议的相关知识,如:HTTP协议详解(真的很经典)
使用Postman测试一下接口:
@RequestMapping除了放在方法上,也可以放在类上,表示这个Controller类中所有方法的共同路径前缀
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@ResponseBody
@RequestMapping("/hello")
public class HelloContorller {