SSM框架学习(一)————SSM框架简介


一.SSM框架简介

SSM(Spring+SpringMVC+MyBatis)框架由Spring、MyBatis两个框架整合完成(SpringMVC是Spring中的部分内容)。采用标准MVC模式。

spring :实现业务对象管理。 mybatis :作为数据对象的持久化引擎。

1.1 Spring

Spring一个开源的,用来简化企业级应用开发的应用开发框架。 使用Spring的目的:spring的本质是管理软件的对象,即如创建对象和维护对象之间的关系。 Spring的核心思想是IOC(控制反转)和AOP(面向切面编程),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。

1.2 SpringMVC

Spring MVC属于Spring Framework的后续产品,已经融合在Spring Web Flow里面,它原生支持的Spring特性,让开发变得非常简单规范。

Spring简单工作原理如下:

1.3 MyBatis

MyBatis是一个基于Java的持久层框架,MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索. MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。


二.MVC模式

2.1 mvc模式

全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

M:model(模型)是指模型表示业务规则,被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 V:view(视图)是指用户看到并与之交互的界面,MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。 C:controller(控制器)是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。 三则之间的关系如下:

2.1.1 MVC应用举例

最典型的MVC就是jsp+servlet+javabean模式: JavaBean作为模型,既可以作为数据模型来封装业务数据,又可以作为业务逻辑模型来包含应用的业务操作。其中,数据模型用来存储或传递业务数据,而业务逻辑模型接收到控制器传过来的模型更新请求后,执行特定的业务逻辑处理,然后返回相应的执行结果。 JSP作为表现层,负责提供页面为用户展示数据,提供相应的表单(Form)来用于用户的请求,并在适当的时候(点击按钮)向控制器发出请求来请求模型进行更新。 Serlvet作为控制器,用来接收用户提交的请求,然后获取请求中的数据,将之转换为业务模型需要的数据模型,然后调用业务模型相应的业务方法进行更新,同时根据业务执行结果来选择要返回的视图。

2.2 SSM和SSH在MVC模式上的区别

SSH :通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层。 SSM :则指的是 SpringMVC 做控制器(controller),Spring 管理各层的组件,MyBatis 负责持久化层。 共同点: 1.Spring依赖注入DI来管理各层的组件 2.使用面向切面编程AOP管理事物、日志、权限等。 不同点: 1.Struts2 和 SpringMVC 控制器(controller)控制视图和模型的交互机制的不同 2.Struts2是Action类级别,SpringMVC是方法级别,更容易实现RESTful风格

三.RESTful

Restfule风格是一种软件架构风格,而不是标准,只是提供了一种设计原则和约束条件。主要适用于客户端和服务器端交互的软件。是基于http协议实现。目的是为了提高系统的可伸缩性,降低应用之间的耦合度,方便框架分布式处理程序。基于这个风格的软件可更加的简单、更有层次,更易于实现缓存的机制。

在resultful风格中,用户请求的url使用同一个URL而用请求方式:get/post/delete/put等方式对请求的处理方法进行区分。这样可以在前后台分离的开发中让前端开发人员不会对请求的资源地址产生混淆,形成一个统一的接口。

特点: 每种url代表了一种资源。 客户端和服务器之间,传递这个资源的某种表现层。 客户端通过四个http动词,对服务器资源进行操作。实现表现层状态的转化。

3.1使用规定

在http协议中,四个表示操作方式的动词:GET/Post/put/Delete,他们分别对应四种基本操作。

RESTful操作方式 Method CRUD POST create、delete、update GET,对应select:是从服务器查询,可以在服务器通过请求的参数区分查询的方式。 POST,对应Create:在服务器新建立一个资源,调用insert操作。 PUT,对应update操作:在服务器更新资源,调用update操作。 DELETE,对应DELETE操作,从服务器删除资源,调用delete语句。 GET read PUT update、create DELETE delete

3.2 SpringMVC实现 RESTful风格

Spring MVc 对resstful应用提供了以下支持。利用@RequestMapping 指定要处理请求的url模板和http请求的动作类型。利用@PathVariable将url请求模板中的变量映射到处理方法参数上。前台利用AJAX,在客户端发出put、delete动作的请求。

格式如下:

@RequestMapping(value="/{id}",method=RequestMethod.GET)
@RequestMapping(value="/{id}",method=RequestMethod.POST)
@RequestMapping(value="/{id}",method=RequestMethod.DELETE)
@RequestMapping(value="/{id}",method=RequestMethod.PUT)

例如:

@RequestMapping(
value="/queryQuByTypeIdAndChaID/{questionTypeId}/{chapterId}",
method=RequestMethod.GET,
produces="text/html;charset=UTF-8"
)
public void queryQuByTypeIdAndChaID(
HttpServletRequest request,
HttpServletResponse response,
@PathVariable String questionTypeId, 
@PathVariable String chapterId){
//具体实现代码
}

3.3RESTful设计的常见误区

经验分享 程序员 微信小程序 职场和发展