Spring

一.Spring相关概念

1.概述

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的容器(container)

无论从大小和开销还是来说,都足以称得上是轻量级的框架
由Rod Johnson创建。
简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架

可以说,spring带来了复杂JavaEE开发的春天!

spring是一个解决方案级别的整合框架,主要是用来作解耦

2.核心部分:

IOC:控制反转
  对象创建不是通过new,而是通过配置交给Spring管理
AOP:面向切面编程
   所以AOP的本质是在一系列纵向的控制流程中,把那些相同的子流程提取成一个横向的面

spring是一种容器,它会管理由他创建的对象,包括生命周期的管理等。

3.一站式框架

  在JavaEE三层架构中,每一层都提供了不同的解决方案
    web层:SpringMVC
    service层:IOC
    dao层:jdbcTemplate

    对应JavaWeb阶段的三层架构:

Spring 6 架构图 spring架构是什么_ViewUI

关于IOC控制反转(Inversion of Control)的理解,参见:

关于AOP面向切面编程(Aspect Oriented Programming)的理解,参见:



SSH

一.三大框架

Hibernate:

    ORM思想
    核心配置文件:
      单独使用时名称和位置是固定,整合时不是固定的
    会有一个HibernateTemplate的封装
Struts2:
    核心组成:
      action
        处理提交表单数据,操作域对象
      值栈
        存取数据的方法
      拦截器
        AOP和责任链模式
Spring:
    IoC和AOP是spring的灵魂

二.SSH整合思想

web(表现层):===struts2
service(业务ljic):===spring
dao(数据层):===hibernaate

web调service,service调dao

整合思想就是两个两个整合:1.struts2和spring整合,2.spring和hibernate整合

      1).把struts2里面的action对象的创建交给spring管理
        需要记得配置除了 id 和 class ,还要有scope为prototype为多实例
      2).把数据库配置信息交给spring
        第一次访问时需要创建sessionFactory比较慢,把这个对象的创建交给spring管理
        让对象在服务器在启动时创建

具体整合方法参见:


Mybatis:MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,


SpringMvc:是一个表现层框架

作用:从请求中获取传入的参数,将处理后的结果数据返回给页面显示

流程:

       第一步:发起请求到前端控制器(DispatcherServlet)

  第二步:前端控制器请求HandlerMapping查找 Handler

           可以根据xml配置、注解进行查找

  第三步:处理器映射器HandlerMapping向前端控制器返回Handler

  第四步:前端控制器调用处理器适配器去执行Handler

  第五步:处理器适配器去执行Handler

  第六步:Handler执行完成给适配器返回ModelAndView

  第七步:处理器适配器向前端控制器返回ModelAndView

           ModelAndView是springmvc框架的一个底层对象,包括Model和view

  第八步:前端控制器请求视图解析器去进行视图解析

           根据逻辑视图名解析成真正的视图(jsp)

  第九步:视图解析器向前端控制器返回View

  第十步:前端控制器进行视图渲染

           视图渲染将模型数据(在ModelAndView对象中)填充到request域

  第十一步:前端控制器向用户响应结果

具体参见:



SSM

SSM=Spring+SpringMVC+Mybatis

Spring 6 架构图 spring架构是什么_数据库_02

 

 

  • SpringMVC:主要进行页面的 请求接受与响应。
  • 组件包括:前端控制器,处理器映射器,处理器适配器,视图解析器,处理器Handler,视图View。其中,只有处理器Handler和视图View需要程序员开发。

View是一个接口,实现类支持不同的View类型(jsp,freemarker,pdf等)。另外,处理器Handler就是Controller。

—————————————————————————————————————

Service层功能:注入dao,调用dao方法

—————————————————————————————————————

Mybatis:开始Mybatis时要记住最终目的,我们要对数据库的数据进行操作,所以你只需要记住,他的使用很方便,很方便,方便,即可。