SSM框架初探

SSM框架简介

       SSM框架一种以java语言作为后端搭建基本语言的应用系统搭建框架。是继SSH(struts+spring+hibernate)之后,目前较为主流的Java EE企业级框架,适用于搭建各种大型(小型也可)的企业级应用系统。
       SSM框架是建立在Spring基础上的 SpringMVC + Spring + MyBatis 三大开源框架的集合缩写。(有的人在介绍SSM框架时,将SSM解释为Spring + SpringMVC + Mybatis,个人理解可能是为了突出这 SSM 的三个框架是以 Spring 作为核心进行整合的意思所以将 Spring 放在第一位,我将 SpringMVC 放在第一位纯属因为从平台构建的角度来看,从前端到后端再到数据库的顺序,分别由 SpringMVC 、Spring 、 MyBatis 进行统筹管理,好记。)

对框架的理解

       个人理解,框架是一种约定的设计方式及设计支撑结构。通过在框架中插入自己代码的形式,用一种大家都认可的形式进行代码的编写与管理。那么,为什么要使用框架呢(自己的想法,不喜勿喷)?

  1. 框架的使用能够简洁我们的代码。 框架为我们做好了模块与模块之间的连接。这使得我们能够将更多的精力花费在自身项目的事务逻辑实现上,而不是花费大量的时间构建模块与模块之间的连接。通常的认知里,代码行越多,bug 越容易产生;而且代码行越多,bug 越难修正;
  2. 框架的使用能够增强代码的重用率。 框架之于系统,类似于函数(方法)之于库(类)。在企业、大项目的开发过程中,一个项目的开发往往是一个团队合作的结果。在团队中,每个人有每个人自己的代码逻辑与风格。在每个人独立的开发过程中,可能会遇到不同事务需要相类似的功能,如果每个人都对自己负责的那一块进行独立模块编写,那将造成大量的资源浪费。好的框架将一些具有共性的功能模块进行封装。在团队合作时,遇到相类似的功能只需调用框架自身提供的功能就能进行实现,减少了对共性代码块的开发,增加了此类代码的重用率。
  3. 框架的使用能够简化项目的开发。 框架中将大部分通用的功能模块进行封装,通过对这些功能模块的调用,在开发系统时,我们无需关注功能如何具体实现,只需关注模块的事务逻辑,该功能模块需要获取的参数以及最后输出。这种封装成型的模块,能通用于整个系统的开发过程,规范项目开发的参数传递,从而简化系统的开发难度以及后续系统的维护难度。
  4. 框架的使用能够协调团队开发逻辑。 通常而言,大的项目长周期,多人协作完成的。在项目的实际开发中,会存在各种各样的意外。系统越大,沟通与交接就显得越发困难。我们说一个,为自己的代码添加注释是一个好的程序编写习惯,但不可避免的在开发过程中会存在沟通不足而使得后来者难以理解代码的含义。框架的使用,能够对项目的各模块进行一定的逻辑划分。从系统整体开发逻辑的角度协调团队工作。

看到过一个别人写的的框架理论简介,引用一下:框架简介(带一点SSM介绍)
 

为什么使用 SSM 框架

       框架是个好东西。那么,市面上流行那么多框架,为什么要选择 SSM 框架作为系统开发框架呢?

  1. SSM(SpringMVC + Spring + MyBatis)框架是免费的开源框架,且拥有成熟的社区和用户群,很多学习、使用上的疑惑都能在网上找到答案,便于学习和使用;
  2. SSM 框架的基础语言是Java,继承了Java的跨平台性,提升了系统的通用性;
  3. SSM 框架是互联网公司的常用框架,基于此框架开发的项目接受率较高;
  4. SSM 框架是轻量级框架,易于上手和使用;
  5. SSM 框架将事务逻辑与业务逻辑相剥离,在一定程度上有效的保护了数据的安全性。

接下来是对SpringMVC 、Spring 、 MyBatis 三大开源框架的介绍。
 

Spring

       Spring 是整个SSM 框架的核心,是2003年兴起的一个轻量级 Java 开发框架。由 Rod Johnson 创建。它解决了业务逻辑层和其他各层的松耦合问题。其核心思想是面向接口的编程设计,提供了管理业务对象的一致方法,在整个系统的架构设计中占有核心地位,起着系统业务逻辑层和其他各层之间的耦合作用。Spring框架站在“使用者”的角度,通过Spring IOC注解的方式进行依赖注入并交由Spring统一管理。使得整个系统设计无需关注事务的操作情况,只需要考虑系统事务的具体业务处理、功能逻辑及事务控制,从而大大降低了系统的设计难度。简单来说,Spring 是一个分层的 JavaSE/EE Full-Stack(一站式) 轻量级开源框架。为什么说 spring 是分层、一站式、轻量级的框架呢?1
       首先看分层。JavaEE 经典的 MVC 三层结构为表现层、业务层、持久层,Web 表现层负责页面数据显示、页面跳转调度,例如 JSP/Servlet、SpringMVC;Service 业务层负责业务处理、功能逻辑和事务控制,例如 Service、JavaBean、EJB;而持久层 Dao 则负责数据存取和封装,及与数据库打交道,例如 JDBC、Hibernate、Mybatis。
       而一站式,则指 Spring 为 JavaEE 的每一层都提供了解决方案,比如:

  • 表现层:Struts1、Struts2、Spring MVC;
  • 业务层:IoC 控制反转、AOP 面向切面编程、事务控制;
  • 持久层:JdbcTemplate、HibernateTemplate、ORM 框架(对象关系映射)的整合。
           至于轻量,则是指从大小与开销两方面而言,Spring 都是轻量的。完整的 Spring 框架可以在一个大小只有 1MB 多的 Jar 文件里发布。并且 Spring 所需的处理开销也是微不足道的。Spring 的出现解决了 EJB 臃肿、低效、繁琐复杂、脱离现实的情况。而且使用 Spring 编程是非侵入式的。Spring 应用中的对象不依赖于 Spring 的特定类。

SpringMVC

       SpringMVC框架是一种请求驱动模式的轻量级web框架。作为基于Spring框架功能上的Web框架拓展,SpringMVC能够与Spring框架进行无缝集成,进而能够很好的继承Spring框架的优势。同时,SpringMVC框架通过注解的形式进行请求处理控制,支持 RESTFUL式风格的URL请求,支持前后端分离技术,简化了系统的开发。
       SpringMVC框架以DispatcherServlet(前端控制器)为核心展开工作。具体工作流程如下:
1、用户在浏览器发送url请求后由DispatcherServlet进行统一拦截,再转发至HandlerMapping (处理器映射器)进行请求映射;
2、HandlerMapping将生成的处理器对象及处理拦截器返回给DispatcherServlet;
3、由DispatcherServlet通过HandlerAdapter(处理器适配器)调用对应的Handler(后端控制器);
4、Handler将结果封装为ModelAndView后返回给DispatcherServlet;
5、DispatcherServlet 将经过ViewReslover(视图解析器)解析ModelAndView后得到的view进行渲染,最终响应用户的请求。
SpringMVC框架用户请求响应流程图如下所示:
SpringMVC框架用户请求响应流程图

Mybatis

       Mybatis 的前身是 iBatis,Apache 的一个开源项目,在 2010 年这个项目从 Apache 迁移到 Google Code 改名为 Mybatis。MyBatis作为类似 ORM 的持久化框架,采用“XML + 注解”的形式对原生态SQL语句进行定义、封装与传参,基于JDBC进行数据库的映射,并对对数据库表中数据结果集与对应的entity类进行自动解析、配对、封装与赋值。最终实现数据库与系统的数据交互。
       主要有以下五大特点:1

  1. 支持自定义 SQL、存储过程、高级映射;
  2. 实现自动对 SQL 的参数设置;
  3. 实现自动对结果集进行解析和封装;
  4. 通过 XML或者注解进行配置和映射,大大减少代码量;
  5. 数据源的连接信息通过配置文件进行配置。

  1. 引自SSM博客系统 · 导读 ↩︎ ↩︎

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

揽月泛夜舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值