• SSM框架简单介绍


    一. SSM框架简介及特征

    1.SpringMVC

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring 的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。

    Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制

    易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。

    2.Spring

    Spring Framework是一个开源的Java/Java EE全功能栈的应用程序框架, 以Apache许可证形式发布,也有.NET平台上的移植版本。Spring Framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码 变得繁杂混乱的大量的属性文件和帮助类。

    轻量—从大小与开销两方面而言Spring都是轻量的。Spring非侵入式的,应用中的对象不依赖于Spring特定类。

    控制反转—Spring通过一种称作控制反转的技术促进了低耦合。不是对象从容器中查找依赖,而是容器在对象 初始化时不等对象请求就主动将依赖传递给它。

    面向切面—Spring提供了面向切面编程的丰富支持,通过分离应用的业务逻辑与系统级服务进行内聚性的开发。

    容器—Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器。

    3.Mybatis

    MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来。 MyBatis是在Apache许可证 2.0下分发的自由软件,是iBATIS 3.0的分支版本。其维护团队也包含iBATIS的初创成员

    1. 易于上手和掌握。

    2. sql写在xml里,便于统一管理和优化。

    3. 解除sql与程序代码的耦合。

    4. 提供xml标签,支持编写动态sql。

    二、SpringMVC流程架构图

    三、SSM框架原理

    Spring MVC运行原理

    1.用户发送请求至 前端控制器DispatcherServlet。

    2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping。

    3.处理器映射器HandlerMapping根据请求的Url找到具体的处理器,生成处理器对象Handler及处理器拦截器 HandlerIntercepter(如果有则生成)一并返回给前端控制器DispatcherServlet。

    4.前端控制器DispatcherServlet通过处理器适配器HandlerAdapter调用处理器Controller。

    5.执行处理器(Controller,也叫后端控制器)

    6.处理器Controller执行完后返回ModelAnView。

    7.处理器映射器HandlerAdapter将处理器Controller执行返回的结果ModelAndView返回给 前端控制器DispatcherServlet。

    8.前端控制器DispatcherServlet将ModelAnView传给视图解析器ViewResolver。

    9.视图解析器ViewResolver解析后返回具体的视图View。

    10.前端控制器DispatcherServlet对视图View进行渲染视图(即:将模型数据填充至视图中)

    11.前端控制器DispatcherServlet响应用户。

    Spring

    Spring IOC容器,指的是控制反转,IOC容器负责实例化、定位、 配置应用程序中的对象及建立这些对象间的依赖。交由 Spring来管理这些,实现解耦

    MyBatis的架构设计

    1.使用传统的MyBatis提供的API 这是传统的传递Statement Id 和查询参数给 SqlSession 对象,使用 SqlSession对象完成和数据库的交互;然后根据Statement Id 和参数来操作数据库,这种方式固然很简单和实用,但是它不符合面向对象语言的概念和面向接口编程的编程习惯

    2. 使用Mapper接口 由于面向接口的编程是面向对象的大趋势,MyBatis 为了适应这一趋势,增加了第二种使用MyBatis 支持接口(Interface)调用方式

    Mybatis运行原理

    1. 加载配置文件

    将SQL的配置信息加载成为一个个MappedStatement对象,包括了参数映射配置,执行的SQL语句、 结果映射配置,存储在内存中。

    2. SQL解析

    当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map/JavaBean或者基本 数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement, 然后根据传入的参数对象 MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。

    3. SQL执行

    将最终得到的SQL和参数拿到数据库执行,得到操作数据库的结果。

    4. 结果映射

    将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap/JavaBean或者基本数据类型, 并将最终的结果返回。

    四. SSM框架配置

    Web.xml基本信息配置

    SpringMVC基本信息配置

    数据库基本信息配置

    Mybatis配置文件

    Spring基本信息配置–数据源

    Spring基本信息配置–SessionFactory和Mapper接口扫描器

    Spring基本信息配置–Service层Bean配置

    Spring基本信息配置–事务管理基础配置

    五. SSM框架使用

    六. 其他实用Jar包

    Jar包仓库地址:https://search.maven.org/classic/或http://mvnrepository.com/

    Jar包管理器:Maven或者Gradle(比如:compile group: ‘com.baomidou’, name: ‘mybatis-plus’, version: ‘2.3’,会自动的将相关依赖的包文件下载。)

    其他实用Jar包

    Apache Shiro

    Lombok

    Druid

    Mybatis-plus

    eclipse自动提示+自动补全问题

    自动提示:

    1.首先,我们打开eclipse,选择菜单栏的window选项。

    2.点击Windows,选择下拉菜单里面的preferences选项,之后在打开的对话框的左侧找到Java选项。

    3.之后点击Java选项,选择展开后的子菜单editor选项,再点击editor选项,选择其展开后的子菜单content assist选项。

    4.在右侧的对话框中auto activation 下的子选项auto activation triggers for java后的文本框中输入.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ即可。

    XML自动补全:

    1.首先,我们打开eclipse,选择菜单栏的window选项。

    2.点击Windows,选择下拉菜单里面的preferences选项,之后在打开的对话框的左侧找到XML选项。

    3.之后点击XML选项,选择展开后的子菜单editor选项,再点击editor选项,选择其展开后的子菜单content assist选项。

    4.在右侧的对话框中auto activation 下的子选项Prompt when these characters are inserted后的文本框中输入<=:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 即可。

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    Harmony | 超好用的单细胞测序数据合并(3‘和5‘数据合并)(二)
    手摸手教你定制 Spring Security 表单登录
    scp通过跳板机向服务器传文件的方法
    环境配置|GitHub——如何在github上搭建自己写的网站
    SpringBoot项目中的测试类,无法注入类,注入类为空
    【reverse】新160个CrackMe之116-REM-KeyGenME#10——脱壳、去背景音乐、识别反调试
    sklearn 中的两个半监督标签传播算法 LabelPropagation和LabelSpreading
    mapstruct更新现有实体忽略null空值
    python爬虫语法
    zemax光线光扇图
  • 原文地址:https://blog.csdn.net/m0_54849806/article/details/126080238