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

目录

一.SSM框架简介

1.1 Spring

1.2 SpringMVC

1.3 MyBatis

二.MVC模式

2.1 mvc模式

2.1.1 MVC应用举例

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

三.RESTful

 3.1使用规定

3.2 SpringMVC实现 RESTful风格


一.SSM框架简介

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

spring MVC:负责请求的转发和视图管理。

spring        :实现业务对象管理。

mybatis      :作为数据对象的持久化引擎。

1.1 Spring

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

1.2 SpringMVC

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

  1. spring MVC:是一个基于MVC架构,简化的web应用程序开发的框架(属于Spring框架的一部分),通过实现Model(模型)-View(视图)-Controller(控制器)模式来很好地将数据、业务与展现进行分离。负责请求的转发和视图管理
  2. Spring MVC 可以帮助我们进行更简洁的Web层的开发,并且它天生与 Spring 框架集成。
  3. Spring MVC 下我们一般把后端项目分为 Service层(业务处理)、Dao层(数据库操作)、Entity(也可以叫pojo)层(实体类)、Controller(也可以叫web)层(控制层,返回数据给前台页面)。

Spring简单工作原理如下: 

1.3 MyBatis

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


二.MVC模式

2.1 mvc模式

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

  1. M:model(模型)是指模型表示业务规则,被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
  2. V:view(视图)是指用户看到并与之交互的界面,MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。
  3. 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等方式对请求的处理方法进行区分。这样可以在前后台分离的开发中让前端开发人员不会对请求的资源地址产生混淆,形成一个统一的接口。

特点:

  1. 每种url代表了一种资源。
  2. 客户端和服务器之间,传递这个资源的某种表现层。
  3. 客户端通过四个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设计的常见误区

RESTful常见两大误区

RESTful版本控制

发布了26 篇原创文章 · 获赞 27 · 访问量 6872

猜你喜欢

转载自blog.csdn.net/qq_40705355/article/details/94127749
今日推荐