![](https://img-blog.csdnimg.cn/20210909224956748.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SSM框架笔记
文章平均质量分 90
介绍Spring、SpringMVC、MyBatis基础企业级开发框架与整合。
Training.L
我思故我在
展开
-
25. SSM 框架整合
SSM 框架整合1、实际开发中通常不会采用 SSM 框架整合的方式;2、学习 SSM 是为了弄懂框架整合的底层原理;Web 框架技术的迭代:第一代:SSH(Spring/Struts/Hibernate) → 第二代:SSM(Spring/SpringMVC/MyBatis) → 第三代:Spring BootSpring MVC 框架负责客户端到服务器程序的交互,接收客户端请求并响应;MyBatis 负责 Web 应用程序与数据库的交互,完成数据模型的 CRUD;Spring原创 2021-09-18 12:04:46 · 184 阅读 · 0 评论 -
24. Spring MVC 数据校验
Spring MVC 数据校验Spring MVC 提供了两种数据校验方式:基于 Validator 接口;使用 Annotation JSR - 303 标准进行校验;基于 Validator 接口的方式需要自定义 Validator 验证器,每一条数据的验证规则都需要开发者手动完成,而使用Annotation JSR - 303 标准,则不需要自定义验证器,通过注解的方式可以直接在实体类中添加每个属性的验证规则,这种方式更加方便,实际开发中更加推荐使用。1. 基于 Validator 接口原创 2021-09-17 20:37:10 · 447 阅读 · 0 评论 -
23. Spring MVC 表单标签库
Spring MVC 表单标签库 Spring MVC 的表单标签库的语法与 JSTL 标签库的语法非常类似,包含了一组可以在 JSP 页面中渲染 form 表单元素的标签。在 JSP 页面中使用 Spring MVC 表单标签库时,必须在 JSP 页面的开头处声明 taglib 指令,指令代码如下:<!-- 前缀prefix可以自定义,通常为form --><%@ taglib prefix="form" uri="http://www.springframework.org原创 2021-09-17 16:28:47 · 613 阅读 · 0 评论 -
22. Spring MVC 文件上传与下载
Spring MVC文件上传与下载1. 单文件上传SpringMVC 的文件上传操作底层使用的是 Apache fileupload 组件完成的,并对文件的二进制流读写进行了封装。1、在 pom.xml 中引入文件上传组件的依赖,包括:commons-io 和 commons-fileupload;<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</原创 2021-09-17 11:39:02 · 464 阅读 · 2 评论 -
21. Spring MVC 之 RESTful 架构思想
Spring MVC 之 RESTful 架构思想REST:Representational State Transfer,资源表现层状态转化,是目前最流行的一种互联网软件架构。它结构清晰,标准规范,易于理解,扩展方便,所以得到了越来越多网站的使用。资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一个文件、一张图片、一首歌曲或是一段视频等,可以用一个 URI(统一资源定位符)指向它,每种资源都对应一个特定的 URI。要获取这个资源,访问它的 URI 即可,因此 UR原创 2021-09-16 22:56:05 · 221 阅读 · 0 评论 -
20. Spring MVC 自定义数据转换器
Spring MVC 自定义数据转换器数据转换器是指将客户端 http 请求中的参数转换为业务方法中定义的形参,自定义表示开发者可以自主设计转换模式,HandlerAdapter 已经提供了通用的转换,比如将 String 转成 int,String 转成 double,表单数据的封装等,但是在特殊的业务场景下,HandlerAdapter 无法进行转换,就需要开发者自定义转换器。我们需要实现 Converter 接口来协助 Spring MVC 完成数据类型的转换,下面通过两个案例来介绍如何自定义数据原创 2021-09-16 14:30:55 · 620 阅读 · 0 评论 -
19. Spring MVC 模型数据绑定
Spring MVC模型数据绑定Spring MVC 框架可以快速地搭建起一个基于 MVC 的 Web 应用程序,但 JavaWeb 的底层仍然是基于 Servlet 的形式。SpringMVC 与传统 Servlet 的比较:Spring MVC 首先解决的问题是 Servlet 业务方法的局限性;每个 Servlet 都要实现 HttpServlet 抽象类,才能具备接收和处理 http 的请求的功能;每个 Servlet 只有一个 doGet 和 doPost 方法。如果客户端向服务器发原创 2021-09-16 09:33:40 · 401 阅读 · 0 评论 -
18. Spring MVC 数据绑定
Spring MVC 数据绑定数据绑定:在后端的业务方法中直接获取客户端 HTTP 请求中的参数,由于 HTTP 请求传输的参数都是 String 类型的,Handler 业务方法中的参数都是我们指定的数据类型,比如:Integer、Double、Long等,所以需要处理参数的转换,将请求参数映射到业务方法的形参中,Spring MVC 中数据绑定的工作是由 HandlerAdapter 组件来完成的。1. 基本数据类型以 int 为例,后台需要 int 类型的参数,直接在业务方法定义处添加 int原创 2021-09-14 11:35:38 · 268 阅读 · 0 评论 -
17. Spring MVC 注解
Spring MVC注解SpringMVC 框架提供了功能强大的注解,大大简化了代码开发的同时也提升了程序的可扩展性。1. 注解参数详解 Spring MVC 通过 @RequestMapping 注解将 URL 请求与业务方法进行映射,在 Handler 的类定义处以及方法定义处都可以添加 @RequestMapping,在类定义处添加,相当于客户端多了一层访问路径。@Controller@RequestMapping("/hello")public class HelloHandler {原创 2021-09-13 19:33:33 · 424 阅读 · 0 评论 -
16. Spring MVC快速入门
Spring MVC快速入门1. Spring MVC 概述Spring MVC 是什么? Spring MVC 是目前实现 MVC 设计模式最好的框架,是 Spring 全家桶的一个分支产品,以 Spring IOC 容器为基础,并利用容器的特性来简化它的配置。Spring MVC 相当于 Spring 的一个子模块,可以很好的和 Spring 结合起来进行开发,是 JavaWeb 开发者必须要掌握的框架。什么是 MVC 设计模式? Spring MVC 实现了 MVC 设计模式,MVC 设原创 2021-09-13 16:58:46 · 195 阅读 · 1 评论 -
15.Spring 面向切面编程
Spring 面向切面编程AOP 是 Spring 框架除了 IOC 之外的另一个核心概念。 AOP:Aspect Oriented Programming,意为面向切面编程。这是一个新的概念,但是我们知道 Java 是面向对象编程(OOP:Object Oriented Programming)的,指将所有的一切都看作对象,通过对象与对象之间相互作用来解决问题。AOP 是对 OOP 的一个补充,是在另外一个维度抽象出来的对象,具体是指程序在运行时,动态地将非业务代码切入业务代码中,从而实现代码的原创 2021-09-09 19:44:36 · 1023 阅读 · 0 评论 -
14. Spring 分层架构
Spring 分层架构 MVC 设计模式:将程序按照不同的业务功能分成不同的层,多层组件构建起来项目的整体,能做到明确分工且模块之间的低耦合度。 将 Web 应用程序分为 3 层:Controller 层、Service 层、DAO 层,这三层之间的关系是:Controller层调用Service 层,Service 层调用DAO 层,并且 Service 层和 DAO 层设计为接口,这是一个典型的 MVC 模式后台代码分层结构。 在实际项目开发中,经常会通过 IOC 容器来架构程序的分层,实原创 2021-09-08 13:58:34 · 2629 阅读 · 2 评论 -
13. Spring 基于注解的开发
Spring 注解 基于 XML 配置文件的方式在之前的系列文章中已经介绍得非常详尽了,而在实际的开发工作中,注解往往比 XML 配置使用得更为频繁,理由也很简单,使用注解能极大减少开发过程中的配置工作,每次创建 XML 文件,写标签对于大规模的项目来说,是比较繁琐的。Spring IoC 常用注解什么是注解?注解是 Java 提供的一种特殊的类,专门用来标注某些任务的,现在我们把原本通过 XML 配置对象的方式,现在改为通过注解配置的方式。第一步:创建实体类,并且在实体类前面添加 @Compon原创 2021-09-08 13:52:26 · 181 阅读 · 0 评论 -
12. Spring 工厂方法
Spring 工厂方法IOC 是典型的工厂模式,现在来学习如何使用工厂模式来创建 bean。 说明:在学习这一部分内容之前,请读者自行复习或者补充设计模式中工厂模式的这一部分背景知识,要知道创建一个对象时,采用工厂模式不是多此一举,而是对象的初始化非常有必要的操作。漫画:设计模式之“工厂模式”IoC 通过模式创建 bean 有两种方式:静态工厂方法实例工厂方法1. 静态工厂方法第一步:创建 Car 实体类;package com.trainingl.entity;impor原创 2021-09-07 18:10:36 · 445 阅读 · 0 评论 -
11. Spring 依赖注入
Spring 依赖注入 上文介绍了如何在 spring.xml 文件中配置一个 bean 对象,但是当时所使用的属性都是基本数据类型和 String 字符串类型,那么如何将一个类的实例化对象注入到另一个类的对象中呢?这就是依赖注入(Dependency Injection)的问题,本文主要讲解的是如何在 XML 文件中完成对象的依赖注入。1. 依赖注入(DI) 假如现在有这样的一个应用场景,建立学生信息类与家庭住址类的关联,我们很直观会想到创建 Student 类和 Address 类,然后会在原创 2021-09-07 15:40:53 · 203 阅读 · 0 评论 -
10. Spring IOC 底层原理
Spring IOC 底层原理如何通过 IOC 容器来创建对象:创建 Maven 工程,在 pom.xml 中添加 Spring 框架相关的依赖;新建实体类;在 resources 目录下创建配置文件,可以自定义文件名,比如:spring-ioc.xml;在 spring.xml 中配置 bean 标签,IOC 容器通过加载 bean 标签来创建对象;调用 API 获取 IOC 创建的对象;以上是 Spring 通过 IoC 容器创建和获取对象的步骤,之前也介绍过 SpringIoC 的底原创 2021-09-06 22:28:45 · 1028 阅读 · 0 评论 -
9. 初识Spring框架
9. 初识Spring框架本节主要介绍了Spring框架的生态环境与概念,另外与传统创建对象方式进行对比,引出了IOC容器通过无参构造和有参构造创建对象的方式,并对Spring底层创建对象做了简要的说明。1. Spring概述 什么是 Spring?Spring 是一个企业级开发框架,是软件设计层面的框架,优势在于可以将应用程序体系进行分层架构,开发者可以自主选择组件,目前 Spring 已经是 Java原创 2021-09-06 18:21:06 · 336 阅读 · 1 评论 -
8. MyBatis 动态SQL
MyBatis 动态SQL1. 动态SQL背景需求从实际开发的业务场景出发,有时候我们经常需要设计出用户字段信息的组合查询操作,比如现在有一张用户信息表如下:根据用户的 ID 和姓名 name 查询用户记录;根据用户的姓名 name 和专业 major 查询用户信息;根据用户的姓名 name 和分数 score 查询用户记录;实体类 User:package com.trainingl.enity;public class User { private Integer id;原创 2021-09-05 14:34:33 · 114 阅读 · 0 评论 -
7. MyBatisCodeHelperPro 插件
MyBatisCodeHelperPro 插件 之前介绍了 MyBatis 的逆向工程生成实体类、自定义接口以及 Mapper.xml 的操作过程,很显然这样的配置工作非常繁琐且复杂,本文在介绍 MyBatis 动态 SQL 之前,先分享一款实用的 MyBatis Generator 插件(MyBatisCodeHelperPro),使用这个插件可以简化开发过程,提高开发者的编码效率。第一步:File → Settings原创 2021-09-05 10:51:45 · 1443 阅读 · 0 评论 -
6. MyBatis 逆向工程
MyBatis逆向工程MyBatis 框架需要:实体类、自定义 Mapper 接口、Mapper.xml 配置传统的开发中,上述的三个组件需要开发者手动创建,逆向工程可以帮助开发者来自动创建这三个组件,减轻开发者的工作量,提高工作效率。如何使用逆向工程MyBatis Generator,简称 MBG,是一个专门为 MyBatis 框架开发定制的代码生成器,可自动生成 MyBatis 框架所需的实体类、Mapper 接口、Mapper.xml,支持基本的 CRUD 操作,但是一些相对复杂的 SQL 需原创 2021-09-04 21:51:51 · 182 阅读 · 0 评论 -
5. MyBatis 缓存
MyBatis 缓存1. 什么是MyBatis缓存上文介绍的 MyBatis 延迟加载,解决的是多表关联查询情况下的效率问题,但是对于单表查询,延迟加载没有作用,MyBatis 提供了缓存机制来解决单表查询情况下的效率问题。使用缓存也是通过减少 Java 程序和数据库的交互次数来提高查询效率。比如,第一次查询出某个对象之后,MyBatis 会自动将它存入缓存,当下一次查询该对象时,可以直接从缓存中获取,而不必再次访问数据库。如果执行删除、修改操作,MyBatis 会自动清空缓存,从而保证数据的时效原创 2021-09-03 22:40:36 · 853 阅读 · 4 评论 -
4. MyBatis 延迟加载
文章目录MyBatis 延迟加载1. 什么是延迟加载2. 测试环境准备3. 开启延迟加载4. 总结MyBatis 延迟加载1. 什么是延迟加载 延迟加载也称为懒加载、惰性加载,使用延迟加载可以提高程序的运行效率,针对数据持久层的操作,在某些特定查询的情况下去访问特定的数据库,在其他情况下可以不访问某些数据表,尽量减少 SQL 的执行,从而达到提高速度的目的,是对数据库操作的一种优化。说明:延迟加载只存在于数据表的级联查询中,单表查询没有延迟加载的功能。具体的业务场景:数据库中有班级表(Cl原创 2021-09-03 21:03:54 · 5787 阅读 · 5 评论 -
3.Mapper.xml 详解
文章目录Mapper.xml 详解1. parameterType2. resultType3. 级联查询3.1 一对多3.2 多对多Mapper.xml 详解MyBatis 主要有两个的配置文件:config.xml 和 Mapper.xml,这两个配置文件可以自定义文件名。config.xml 是全局配置文件,主要配置 MyBatis 的数据源(DataSource),事务管理(TransactionManager)以及打印 SQL 语句,开启二级缓存,注册 Mapper.xml 等。Map原创 2021-09-02 13:27:17 · 17245 阅读 · 0 评论 -
2. 初识MyBatis
初识MyBatis1. MyBatis 简介2. MyBatis 快速入门3. 使用 MyBatis 的注意事项4. 自定义接口1. MyBatis 简介什么是 MyBatis?MyBatis 是 Apache 的一个开源项目 iBatis,2010 年这个项目由 Apache Software Foundation 迁移到了 Google Code,由谷歌公司负责维护,并且改名为 MyBatis;2013 年 11 月迁移到 Github。MyBatis 是一个企业级数据持久化的开发框架原创 2021-09-01 13:00:42 · 534 阅读 · 0 评论 -
1. 快速上手 Maven 工程
快速上手 Maven 工程1. Maven 简介2. 配置 Maven 环境3.详解 Maven 工程1. Maven 简介 Maven 是 Java 企业级开发管理 jar 包的工具。Maven 提供了一个远程仓库,Java 生态中所有框架的 jar 包依赖都会被上传到远程仓库,开发者需要用到哪个 jar 包,只需要通过简单的配置,就可以从远程仓库下载 jar 到本地使用。创建 Maven 工程后,导入 jar 包的顺序如下:pom.xml 配置项目所需要的 jar 包;先在本地仓库进行原创 2021-08-31 21:39:53 · 251 阅读 · 0 评论