Spring MVC是Spring的后续框架,可以良好的与Spring其他框架集成“Spring Web模型-视图-控制器(MVC)框架设计围绕DispatcherServlet分派请求处理程序,可配置的处理程序映射,决议,地区,时区和主题解析以及对上传文件的支持。默认的处理程序是基于@ controller和@RequestMapping注释,提供多种灵活的处理方法。通过引入Spring 3.0,@ controller机制也允许您创建RESTful Web站点和应用程序,通过@PathVariable注释和其他特性。”
2.3.4 RESTful
RESTful是目前一种软件开发的架构风格,它为项目开发团队提供一套接口设计的原则以及约束条件,满足这些约束条件和原则的应用程序就是RESTful项目。
“REST是Representational State Transfer的简称,RESTful架构风格最初由Roy T. Fielding(HTTP/1.1协议专家组负责人)在其2000年的博士学位论文中提出。HTTP就是该架构风格的一个典型应用。从其诞生之日开始,它就因其可扩展性和简单性受到越来越多的架构师和开发者们的青睐。一方面,随着云计算和移动计算的兴起,许多企业愿意在互联网上共享自己的数据、功能;另一方面,在企业中,RESTful API(也称RESTful Web服务)也逐渐超越SOAP成为实现SOA的重要手段之一。时至今日,RESTful架构风格已成为企业级服务的标配”[2]。其目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。
直观简短的资源地址:URI,比如:。
传输的多种类资源:RESTful不仅接受XML类型资源还接受JSON等常用类型资源
对资源请求的操作:Web服务在该资源上所支持POST,GET,PUT或DELETE等一系列请求方法[13]。
RESTful API接口风格如下:
A)应用软件的每一个URI都代表一种资源,并且这些URL是唯一的;
B)客户端和服务器之间,传递这种资源的某种表现层;
C) 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"[14]
2.3.5 MyBatis
目前ORM流行开发框架以Mybatis、Hibernate、Spring Data为主。其中Hibernate框架的设计对项目数据库的结构进行了较完整的封装,,并且完美的提供了Java持久化对象与数据库之间关系,可以通过Java 持久化对象建立相对应的数据表,以及SQL 语句可以自动生成、自动执行。作为开发人员只需要设计好Java持久化对象到数据库表的映射关系就好,总之我们可以通过Hibernate框架对数据库操作,不在需要程序员编写各种SQL语句,Hibernate会根据开发者制定的逻辑关系,自动生成对应的SQL 并调用JDBC API执行生成的SQL。文献综述
Mybatis同样也是非常流行的ORM框架,“主要着力点在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定 POJO 。相对Hibernate“O/R”而言,Mybatis 是一种“Sql Mapping”的ORM实现”。
Hibernate相对于Mybatis上手难,理解起来不容易。相对于Hibernate而言“mybatis使用简单,数据的可靠性、完整性的瓶颈便更多依赖于程序员对sql的使用水平上了。sql写在xml里,虽然方便了修改、优化和统一浏览,但可读性很低,调试也非常困难,也非常受限,无法像jdbc那样在代码里根据逻辑实现复杂动态sql拼接。mybatis简单看就是提供了字段映射和对象关系映射的jdbc,省去了数据赋值到对象的步骤而已,除此以外并无太多作为,不要把它想象成hibernate那样强大,简单小巧易用上手,方便浏览修改sql就是它最大的优点了。由于Hibernate对查询对象有着良好的管理机制,用户无需关心SQL。所以在使用二级缓存时如果出现脏数据,系统会报出错误并提示。而MyBatis在这一方面,使用二级缓存时需要特别小心。如果不能完全确定数据更新操作的波及范围,避免Cache的盲目使用。否则,脏数据的出现会给系统的正常运行带来很大的隐患”。所以在项目里我使用Redis来做缓存解决MyBatis缓存问题。