ssm框架学习总结

本文详细解释了SSM框架(Spring、SpringMVC、Mybatis)的结构,包括各层功能(如DAO层的数据库操作,Service层的业务逻辑,Controller层的流程控制,以及Pojo层的模型映射),以及Spring的bean管理和控制反转、面向切面编程等概念。还比较了Mybatis与Hibernate在ORM框架中的异同。
摘要由CSDN通过智能技术生成

SSM框架的定义

SSM框架是spring、spring MVC 、和mybatis框架的整合,是标准的MVC模式。
标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。

pojo层

Plain Ordinary Java Object,也有人称其为model、domain、bean等,pojo层是对应的数据库表的实体类。

持久层:DAO层(mapper层)

作用:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。
Dao层首先设计的是接口,然后再Spring的配置文件中定义接口的实现类。
然后可以在模块中进行接口的调用来进行数据业务的处理。(不在关心接口的实现类是哪个类)
DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。

服务层:servicec层

**作用:**Service层主要负责业务模块的逻辑应用设计。
设计接口然后再设计实类,然后再在Spring的配置文件中配置其实现的关联。(业务逻辑层的实现具体要调用到自己已经定义好的Dao的接口上)这样就可以在应用中调用Service接口来进行业务处理。
建立好Dao之后再建立service层,service层又要在controller层之下,因为既要调用Dao层的接口又要提供接口给controller层。每个模型都有一个service接口,每个接口分别封装各自的业务处理的方法。

表现层:controller层

**作用:**负责具体的业务模块流程的控制。
配置也同样是在Spring的配置文件里面进行,
调用Service层提供的接口来控制业务流程。
业务流程的不同会有不同的控制器,在具体的开发中可以将我们的流程进行抽象的归纳,设计出可以重复利用的子单元流程模块。
可以理解为一般理解中后端做控制的模块,利用注解向前端传数据和处理数据的部分就是controller层的。

view层

作用:主要和控制层紧密结合,主要负责前台jsp页面的表示。
可以理解为放前端页面的,前端一般是将后端传来的数据经过处理后利用框架显示到页面上的

Spring

bean
bean是是一种特定的对象类型,代表可重用的软件组件。
配置文件中普通的bean一般只需要定义id&class即可

bean的实例化有三种方式,最常用的是构造器实例化
bean的装配方式也有三种,最常用的是基于注解的装配方式
bean 的生命周期:实例化-依赖注入-初始化-使用-销毁

控制反转(IOC):是一种编程思想,也是一种设计原则,它将应用程序的控制权从应用程序代码中转移到了外部容器或框架中。在传统的编程模型中,应用程序负责创建和管理对象之间的依赖关系,而在 IOC 容器中,控制权被反转了,容器负责创建、配置、组装和管理对象之间的依赖关系。这种反转使得应用程序更加灵活、松耦合,并且更易于测试和维护。

**面向切面编程(AOP):**另一种编程思想,它通过在不同的切面(Aspect)上进行交叉关注点的模块化,使得程序的逻辑更加清晰、易于维护。AOP 可以用来实现横切关注点的重用,例如日志记录、事务管理、性能监控等。AOP 通过在程序运行时动态地将切面织入到应用程序的逻辑中,从而实现了与业务逻辑解耦的目的。

注:横切关注点:从每个方法中抽取出来的同一类非核心业务代码。
切面:需要把对象想象成一个立方体,对于一个我们已经封装好的类,我们可以在编译期间或在运行期间,对其进行切割,把立方体切开,在原有的方法里面添加(织入)一些新的代码,对原有的方法代码进行一次增强处理。而那些增强部分的代码,就被称之为切面
切入点:要对哪些类中的哪些方法进行增强,进行切割,指的是被增强的方法。
连接点:知道了要切哪些方法后,剩下的就是什么时候切,在原方法的哪一个执行阶段加入增加代码,这个就是连接点。如方法调用前,方法调用后,发生异常时等等。
通知:通知被织入方法,该如何被增强(空间-切入点),何时被增强(时间-连接点)。
目标对象:被一个或多个切面所通知的对象,即为目标对象。
AOP代理对象:AOP代理是AOP框架所生成的对象,该对象是目标对象的代理对象。代理对象能够在目标对象的基础上,在相应的连接点上调用通知。
织入:将切面切入到目标方法之中,使目标方法得到增强的过程被称之为织入。

SpringMVC

什么是SpringMVC
**模型(Model):**模型代表应用程序的业务逻辑和数据,通常是通过 POJO(Plain Old Java Object)来表示的。模型负责处理应用程序的业务逻辑,处理数据,并且与数据库进行交互。
**视图(View):**视图负责向用户展示数据,并且与用户进行交互。在 Spring MVC 中,视图通常是一个 JSP 页面、HTML 页面、JSON 数据等,它们负责将模型中的数据渲染成用户可见的形式。
**控制器(Controller):**控制器负责接收用户的请求,调用相应的业务逻辑处理模型中的数据,然后将处理结果传递给视图进行渲染。在 Spring MVC 中,控制器通常是一个 Java 类,它使用注解或者配置来映射请求到相应的处理方法上。

Spring MVC 的请求处理流程

用户发送请求到DispacherServlet(分发器)
DispatcherServlet 调用 HandlerMapping 处理器映射器,将请求映射到具体的处理器(Controller)。
HandlerAdapter 处理器适配器根据处理器(Controller)执行相应的方法,并返回结果。
DispatcherServlet 将处理器(Controller)的执行结果封装成 ModelAndView 对象。
DispatcherServlet 调用 ViewResolver 视图解析器,将 ModelAndView 解析为具体的视图。
DispatcherServlet 使用 View 渲染视图,并将模型数据填充至视图中。
最终,DispatcherServlet 将响应返回给用户。

Mybatis

mybatis是对jdbc的封装,它让数据库底层操作变的透明。
mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

常见orm框架mybatis和hibernate 的区别
hibernate自动生成sql,开发效率高工作量小,但当存在多表关联时对sql查询支持较差
mybatis需要手动编写sql,但mybatis可以动态配置并优化sql

mybatis工作原理
1、读取mybatis配置文件,加载映射文件
2、构建sqlsessionfactory
3、构造sqlsession
4、执行sql命令,解析sql映射文件、执行sql语句(通过executor执行器、mappedstatement对象完成)
5、输入参数映射
6、输出结果映射

  • 37
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值