首页 > 其他分享 >ssm框架学习总结

ssm框架学习总结

时间:2024-03-27 22:33:38浏览次数:23  
标签:总结 配置文件 框架 Spring 接口 ssm 视图 sql mybatis

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 通过在程序运行时动态地将切面织入到应用程序的逻辑中,从而实现了与业务逻辑解耦的目的。

注:横切关注点:从每个方法中抽取出来的同一类非核心业务代码。

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、输出结果映射

标签:总结,配置文件,框架,Spring,接口,ssm,视图,sql,mybatis
From: https://blog.csdn.net/modaoshi51991/article/details/137057396

相关文章

  • SqlServer(3)SqlServer经典总结大全-数据库同步-基础知识整理-能力提升
    三、SQLServer同步复制技术实现步骤,配上详细步骤和代码语句和输出SQLServer的同步复制是一种确保数据在发布服务器和订阅服务器之间实时同步的技术。以下是同步复制的详细步骤,包括代码语句和可能的输出。1.准备工作确保两台服务器(发布服务器和订阅服务器)的网络连接是正......
  • JavaScript 基础、内置对象、BOM 和 DOM 常用英文单词总结
    一提到编程、软件、代码。对于英语不是很熟悉的同学望而却步。其实没有想像中的难么难,反复练习加上自己的思考、总结,会形成肌肉记忆。整理一下,初学者每天30遍。1、JavaScript基础语法break:中断循环或switch语句的执行。case:在switch语句中检查的值。catch:在try-c......
  • 【markdown】语法总结
    文章目录一、基本配置1)通用2)外观3)编辑器4)图像5)Markdown二、标题这是一级标题这是二级标题三、段落1)换行2)分割线四、文字显示1)字体2)上下标五、列表1)无序列表2)有序列表3)任务列表六、区块显示七、代码显示1)行内代码2)代码块八、链接九、脚注十、图片插入十一、表格十......
  • 4.列表控件的总结(ListView)
    ListView常用的属性android:divider分割线的颜色数据适配器三个BaseAdapterimplementsListAdapter,SpinnerAdapterpublicclassSimpleAdapterextendsBaseAdapterpublicclassArrayAdapter<T>extendsBaseAdapterSimpleAdapter主要是显示图片加文字的东西例如:......
  • 5. 各类元素总结
    块元素页面独占一行,默认宽度撑满父级元素,默认高度由内容撑开,可以设置CSS主体结构标签:<html>,<body>排版元素:<h1>-<h6>,<hr>,<pr>,<pre>,<div>列表元素:<ul>,<ol>,<li>,<dl>,<dt>,<dd>、表格相关标签:<table>,<tbody>,......
  • 基于JAVA SSM 弹幕视频网站项目 (内附计算机毕业设计LW + PPT+ 源码)
    弹幕视频网站项目技术栈该项目采用了以下核心技术栈:后端框架/库:ssm数据库:MySQL5.7前端技术:JSP,JavaScript,HTML5,CSS3服务器:Tomcat7开发工具:Eclipse/MyEclipse/IDEA,Navicat11JDK版本:JDK1.8Maven包:Maven3.3.9核心功能描述前台功能模块:包括视频信息展示、商......
  • 基于JAVA的ssm框架书城系统
    博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,可以定制、也可成品项目,博客中有上百套程序可供参考,欢迎共同交流学习。......
  • 基于JAVA的是什么框架奶茶店管理系统
    博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,可以定制、也可成品项目,博客中有上百套程序可供参考,欢迎共同交流学习。......
  • C++高频面试知识总结 part1
    面向对象1.什么是类?2.面向对象程序设计思想?3.多态的实现?4.动态多态的作用?5.动态绑定的实现?6.纯虚函数的作用以及实现?7.虚函数表如何维护?推荐阅读8.C++struct和类的区别?9.C++中类成员的访问权限?1.什么是类?是一种用户定义的数据类型,包含了数据成员和函数成员。数据成......
  • 前端学习-UI框架学习-Bootstrap5-002-容器
    菜鸟教程链接固定宽度.container类用于创建固定宽度的响应式页面。<divclass="container"><h1>我的第一个Bootstrap页面</h1><p>这是一些文本。</p></div>100%宽度.container-fluid类用于创建一个全屏幕尺寸的容器,容器始终跨越整个屏幕宽度(width始终为100%):......