ssm框架是前端还是后端

Z, ZLW 6382

ssm框架是前端和后端交互的框架。SSM是Spring、SpringMVC、Mybatis的简称,用作Web项目框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。

SSM是Spring、SpringMVC、Mybatis的简称,用作Web项目。常作为数据源较简单的web项目的框架。前后端数据交互通过前端页面提交数据并指定处理数据的controller,后端在controller层中编写处理前端提交的数据的方法。

1、Spring

Spring是Java世界中最成功的框架,它的成功源自于理念,而不是技术。

在Spring中,一切Java类都是资源,而资源都是Bean,容纳这些Bean的是Spring提供的IoC容器。Spring是基于Bean的编程。并且,Spring技术并不是为了代替任何技术,而是将所有的技术整合起来。

Spring核心IoC控制反转。

“我”,充当主动角色,我喝水的时候,需要杯子,于是我new一个杯子来用。至始至终都是以“我”为中心。这就是控制“正”转。 控制反转,就是把杯子交给容器来管理,当“我”需要杯子的时候,去请求Spring给“我”一个杯子,“我”不再是控制方,而是请求者。控制权在容器手里,“我”依赖容器的资源。 资源交给“我”的过程,就是依赖注入。

控制反转是一种通过描述(xml配置或者注解),再通过第三方去产生或者获取对象的方式。而对象内部依赖的复杂性也无需我们去考虑,容器给你提供的对象,必然是可用的。

2、SpringMVC

在早期的JavaWeb开发中,主要是JSP+JavaBean的模式,我们称之为Model1。

但是,JSP和Java之间出现了严重的耦合,Java和HTML也耦合在一起,开发者不仅仅要掌握Java,还要掌握高超的前端技术。更可怕的是,页面前端和后端相互依赖,前端需要等待后端就绪,后端也依赖于前端完成,这样才能进行有效的测试。并且,由于高度耦合,功能模块难以复用。

所以早期的MVC模型诞生了,Servlet+JSP+JavaBean流行起来。用户的请求到达Servlet,Servlet作为控制器接受这个请求,再调度JavaBean,来对数据库进行持久化操作,然后把结果返回给JSP,这样的模式成为MVC模式。JavaBean是Model,Servlet是Controller,JSP是View。这样的好处是,Controller和Model得到很好的分离,大量的Java代码得到复用。但是Controller和View还存在一定程度的耦合。而这个时候作为MVC经典框架Struts1和Struts2以及模型层Hibernate崛起了。

但是Struts是依赖于页面编程的 ,随着移动互联网的兴起,Web页面大部分采用Ajax请求,数据格式为JSON。这样对于JSP的耦合度大大降低,Struts已经不适合时代发展了。而互联网时代性能是最重要的,不可优化SQL亦不灵活成为了Hibernate的不治之症。而一直没有处理好的数据库事物编程,NoSql的强势崛起,当时的持久层框架都不能处理。

SpringMVC是一种基于Servlet的技术,其核心控制器为DispatcherServlet及相关组件,从名字上来看,它就是一个Servlet。根据我们对Servlet的了解,DispatcherServelt会拦截HTTP发过来的请求,在init阶段获取配置信息,得到统一的资源标识符(URL)和处理器(Handler)之间的映射关系。

为了灵活和功能增强,SpringMVC还增加了拦截器,以在处理器执行前后加入自己的代码,这样就构成了处理器执行链条。处理完毕后,根据上下文视图解析器定位视图,将数据模型渲染到视图中,最终完成对用户请求的响应。

SpringMVC的优势在于:

模型层被拆分为业务层(Service)和数据访问层(Dao),在Service下我们可以通过Spring的声明事物操作数据库访问层,在Service中还允许我们访问NoSql。
SpringMVC结构松散,在SpringMVC中可以使用JSON、JSP、XML、PDF等等就,满足平板、手机,页面的各类请求。

3、MyBatis

持久层是将业务数据存储到磁盘(持久存储)的一个层面,Mybatis就是一个持久层框架。

Mybatis的优点显而易见:

不屏蔽SQL,可以精确地定位SQL语句,也可以对Sql进行优化和改造,有利于互联网开发对性能的要求。

强大灵活的映射机制,提供动态SQL的功能,允许SQL组装,可读性可维护性好。

提供Mapper接口编程,只要一个接口和XML就能创建映射器,几乎省略了所有的JDBC代码,诸多框架API在Mybatis中消失,开发者集中精力在业务逻辑上。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部