zoukankan      html  css  js  c++  java
  • 浅谈SSM框架

    学习ssm框架(spring+springMVC+myBatis)有一段时间了,下面谈谈自己的看法


    Spring框架(百科)

    Spring是一个轻量级的容器框架,它的核心功能是控制反转(IoC)和面向切面(AOP);它就是一个用来生产bean的工厂

    轻量级框架优点是减小开发的复杂度,缺点是处理能力弱(如事务功能弱、不具备分布式处理能力,struts也是轻量级框架)

    控制反转IoC–一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象,它的作用在于解耦和

    切面编程AOP–Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的–完成业务逻辑–仅此而已。

    在ssm框架中spring框架起衔接springMVC和myBatis框架作用,因为业务层会调用持久层的数据库的数据处理,web层会调用业务层的业务处理。
    这里写图片描述


    springMVC框架(百科)

    springMVC主要通过前端控制器对网页请求进行处理,它的注解十分方便,简洁化了开发和测试。

    Spring MVC主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。他的两个核心是:
    处理器映射HandlerMapping:选择使用哪个控制器来处理请求 ;
    视图解析器ViewResolver:选择结果应该如何渲染页面;

    工作流程
    这里写图片描述
    (1) Http请求:客户端请求提交到DispatcherServlet。
    (2) 寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。
    (3)调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。
    (4)(5)处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。
    (6) Http响应:视图负责将结果显示到客户端


    myBatis框架(百科)

    myBatis是一个半自动化的持久层框架,使用者可以直接面对sql语句对数据库操作,很方便(反面这也是它的缺点,要写大量的数据库操作语句);MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
    myBatis强大之处在于它的动态sql语句,不用去管数据库语句的逗号那些繁琐的东西,很方便。
    myBatis的事务交给Spring管理,Spring的AOP切面编程与myBatis事务的配合十分完美,你去使用它会有种它们注定是一对的感受。
    myBatis的一级缓存是sqlSession级别,默认开启;二级缓存是application级别,默认关闭。缓存针对于查找操作,对于增删改操作,缓存会被刷新。详细参考


    三个框架整合流程

    在ssm框架中spring框架起衔接springMVC和myBatis框架作用,因为业务层会调用持久层的数据库的数据处理,web层会调用业务层的业务处理。
    这里写图片描述
    因此服务器启动时,会首先加载spring容器spring配置文件中会加载myBatis对数据库的操作以及事务操作,然后加载SpringMVC容器。


    下面具体从配置文件来看

    首先是服务器的配置文件web.xml
    这里写图片描述


    一、加载spring的配置文件application.xml
    这里写图片描述

    进入application.xml文件中

    这里首先会扫描所有的bean加载到Spring容器中,然后加载myBatis持久层以及事务,没有扫描Controller层是因为ssm框架中的SpringMVC容器会单独扫描Controller层,这样分开扫描,分工明确,条例清晰,后面会有文章单独谈扫描路径
    这里写图片描述
    myBatis持久层的加载
    这里写图片描述
    事务加载
    这里写图片描述

    到此Spring容器已经加载完成,可以看到Spring框架和myBatis框架的融合,下面说SpringMVC框架


    二、web.xml文件加载spring完成后,继续加载SpringMVC
    这里写图片描述

    进入springMvc.xml文件

    这里扫描只会扫描Controller层,因为SpringMVC容器是Spring容器的子容器,它可以使用Spring容器加载的东西。
    这里写图片描述

    由于我的配置是拦截所有请求,这里对静态资源的加载也要配置
    这里写图片描述

    视图解析器的配置
    这里写图片描述

    到这里整合算是结束,上面可能存在疏漏之处,请提出。


    对于三个框架的使用,关键在于配置,大量的代码被配置优化了,Spring框架对springMvc和myBatis框架的融合,简化了整个业务流程,代码十分简洁。轻量级,速度快,效率高,这九个字形容SSM框架最好不过噢

  • 相关阅读:
    棋盘型动态规划 之 CODE[VS] 1220 数字三角形
    棋盘型动态规划 之 CODE[VS] 1219 骑士游历 1997年
    棋盘型动态规划 之 CODE[VS] 1169 传纸条 2008年NOIP全国联赛提高组
    棋盘型动态规划 之 CODE[VS] 1010 过河卒 2002年NOIP全国联赛普及组
    [实验]自举?只不过是电容和二极管捣的乱
    [嵌入式]I2C协议指东
    [语法]C语言中二维数组做输入参数
    深入类方法。
    今天周六祝大家休息开心,我还在奋斗....
    我们一起来一把.....现在学习真的好累,一天下来脑袋要炸
  • 原文地址:https://www.cnblogs.com/wangqilong/p/8279752.html
Copyright © 2011-2022 走看看