![](https://img-blog.csdnimg.cn/direct/7321466b037940148b8abb94de2c8d6a.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring
文章平均质量分 91
Spring、SpringMVC、SpringBoot
Xiu Yan
北漂程序员一枚,目前就职华为。
展开
-
SSM框架整合流程与原理解读(附源码链接)
一、搭建整合环境二、Spring 框架代码的编写三、SpringMVC 框架代码的编写四、Spring 整合 SpringMVC 的框架五、MyBatis 框架代码的编写六、Spring 整合 MyBatis 框架七、Spring 框架配置 AOP 与事务控制八、Spring 事务控制失效问题的原因原创 2023-04-15 02:33:53 · 758 阅读 · 0 评论 -
Mybatis、Spring、SpringMVC 最详细学习路线
参考黑马教程总结了 Mybatis、Spring 及 SpringMVC 三大框架的学习笔记,供读者参考,也用于日后框架的复习。需要掌握程度是通过个人总结的,读者还需根据个人需求来学习。Mybatis 从入门到精通系列目录结构序号账目名称需要掌握程度1快速入门了解2执行查询的底层原理分析了解3基于注解配置的查询所有会用4基于XML配置实现增删改查掌握5Mybatis 传入参数总结会用6properties 和 typeAlia原创 2021-07-20 23:25:56 · 1873 阅读 · 2 评论 -
Mybatis从入门到精通系列 01 —— 快速入门
Mybatis从入门到精通系列一、Mybatis概述 mybaits 是一个持久层框架,用 java 编写的,它封装了 jdbc 操作的很多细节,使开发者 只需要关注sql语句 的本身,而无需关注注册驱动,创建链接等繁杂过程。 mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并原创 2021-04-15 11:31:47 · 1132 阅读 · 0 评论 -
Mybatis从入门到精通系列 02 —— 执行查询的底层原理分析
Mybatis从入门到精通系列 02—— 执行查询所有的底层分析 本文将对 Mybatis从入门到精通系列1讲 查询所有的入门案例进行底层的分析,并深入剖析 Mybatis 在持久层对数据做处理的相关操作。文章目录Mybatis从入门到精通系列 02—— 执行查询所有的底层分析一、入门案例设计模式分析二、Mybatis在执行查询所有的原理分析1、配置文件的解析2、SelectList 方法执行步骤一、入门案例设计模式分析在一讲中,我们用下面代码实现了 mybatis 入门案例的编写,接下来我原创 2021-04-16 22:58:22 · 733 阅读 · 0 评论 -
Mybatis从入门到精通系列 03 —— 基于注解配置的查询所有
Mybatis从入门到精通系列 03——基于注解配置的查询所有 本文针对 Mybatis从入门到精通系列1讲中的入门案例进行注解实现。一、Mybatis中注解与 xml 配置的差异概述 Mybatis 基于注解配置与 XML 配置的不同之处除了在于工程目录稍有不同以外,在应用方面也有出入。注解配置适用于简单的数据处理,理解起来比较容易,而配置文件扩展强,更适用于维护。此外,在动态 sql 语句方面,注解开发相对 XML 配置开发局限一些。 下面我们来基于注解方式实现数据库的查询。 二、原创 2021-04-17 22:22:21 · 390 阅读 · 0 评论 -
Mybatis从入门到精通系列 04 —— 基于XML配置实现增删改查
本文主要应用XML配置方式实现数据库表的增删改查,还针对传入几类参数的有相应的总结。文章目录一、XML配置实现增删改查1.1 添加操作一、XML配置实现增删改查 除了映射文件 IUerDao.xml 不同以外,其余配置都和 1 讲中相同,具体代码参考下方链接:Mybatis从入门到精通系列 01——快速入门测试类部分代码如下:public class MybatisTest { private InputStream in; private SqlSession sqlSess原创 2021-04-18 23:04:33 · 1310 阅读 · 1 评论 -
Mybatis从入门到精通系列 05 —— Mybatis 传入参数总结
本文针对 Mybatis 传入类型的参数做出一定量的总结。文章目录一、简单类型的参数1.1 单个参数1.2 多个参数二、pojo 对象和 pojo 包装对象2.1 传递 pojo 对象2.2 传递 pojo 包装对象三、传入参数类型是 Map四、传入参数类型是 List一、简单类型的参数1.1 单个参数基本类型或者基本类型包装类并且占位符只有一个参数时,可以随意写,并且 parameterType 可写可不写。/** * 根据 id 查询用户信息 */User findById(I原创 2021-04-20 22:45:04 · 527 阅读 · 0 评论 -
Mybatis从入门到精通系列 06 —— properties 和 typeAliase 标签总结
本文针对 properties 标签和 typeAliase 标签的使用进行了总结归纳目录一、properties 标签的使用1.1 在标签内容下配置数据库的信息1.2 通过属性引用外部配置文件信息1.3 properties的属性1.4 properties标签 resource 和 url 属性的两种写法:二、typeAliase 标签的使用2.1 typeAliase 标签指定别名2.2 pakage 标签指定 dao 接口所在包一、properties 标签的使用properties原创 2021-04-21 23:59:38 · 820 阅读 · 0 评论 -
Mybatis从入门到精通系列 07 —— Mybatis 连接池与事务控制
本文针对 Mybatis 自身的连接池技术进行深入解析,并对 Mybatis 事务控制的底层原理进行分析。文章目录一、Mybatis 的连接池技术1.1 mybatis的连接池分类1.2 Mybatis 中数据源的配置1.3 Mybatis 中 DataSource 的存取一、Mybatis 的连接池技术 连接池就是用于存储连接的一个容器,容器其实就是一个集合对象,该集合必须是线程安全的,不能两个线程拿到统一连接,并且该集合还必须实现队列的特性:先进先出。1.1 mybatis的连接池原创 2021-04-23 22:54:15 · 634 阅读 · 2 评论 -
Mybatis从入门到精通系列 08 —— 动态 SQL 语句
Mybatis 的映射文件中,前面我们的 SQL 都是比较简单的,有些时候业务逻辑复杂时,我们的 SQL 是动态变化的,此时在前面的学习中我们的 SQL 就不能满足要求了。那么本文针对 Mybatis 动态 SQL 语句进行简单的操作。文章目录一、动态 SQL 的 if 标签二、动态 SQL 的 where 标签三、动态 SQL 的 foreach 标签3.1 传入 List 集合3.2 传入包装类 QueryVo四、动态 SQL 的 bind 标签一、动态 SQL 的 if 标签 我们根原创 2021-04-24 23:39:22 · 443 阅读 · 0 评论 -
Mybatis从入门到精通系列 09 —— Mybatis多表查询之一对多查询
本次案例主要以最为简单的用户和账户的模型来分析Mybatis多表关系。用户为User 表,账户为Account表。一个用户(User)可以有多个账户(Account)。具体关系如下:原创 2021-05-03 22:39:17 · 4590 阅读 · 2 评论 -
Mybatis从入门到精通系列 10 —— Mybatis多表查询之多对多查询
本文针对 Mybatis 多表查询的多对多查询进行详细讲解。 本文案例主要以用户和角色的模型来分析 Mybatis 多表关系。用户为 User 表,角色表为 Role 表,中间表为 User_role。一个用户可以拥有多个角色,一个角色可以赋予多个用户,role_desc 代表角色描述。具体关系如下:文章目录一、多表查询(多对多)分析步骤二、多对多查询2.1 编写角色实体类2.2 编写 SQL 语句2.3 定义持久层角色的 Dao 接口2.4 IRoleDao.xml 文件中的查询配置信息2.原创 2021-05-07 22:55:55 · 2744 阅读 · 5 评论 -
Mybatis从入门到精通系列 11 —— Mybatis 延迟加载与立即加载
在实际开发中很多时候我们并不需要总是加载用户信息时就一定要加载他的账户信息,此时就是我们所说的延迟加载。本文针对 Mybatis 延迟加载策略进行详细讲解。文章目录一、延迟加载与加载概述二、延迟加载配置三、使用 assocation 实现延迟加载3.1 账户的持久层 DAO 接口3.2 账户的持久层映射文件3.3 用户的持久层接口和映射文件3.4 开启 Mybatis 的延迟加载策略3.5 编写测试只查账户信息不查用户信息3.6 对于 aggressiveLazyLoading 的使用一、延原创 2021-05-09 22:34:28 · 1026 阅读 · 1 评论 -
Mybatis从入门到精通系列 12 —— Mybatis 的一级缓存与二级缓存
Mybatis 框架也有提供了缓存策略,通过缓存策略来减少数据库的查询次数,从而提高性能。Mybatis中缓存分为一级缓存,二级缓存。文章目录一、问题题出二、Mybatis 的一级缓存2.1 一级缓存概述2.2 一级缓存实现2.2 一级缓存注意事项三、Mybatis 的二级缓存3.1 二级缓存概述3.2 二级缓存的开启与关闭一、问题题出什么是缓存存在于内存中的临时数据。为什么使用缓存减少和数据库的交互次数,提高执行效率。什么样的数据能使用缓存,什么样的数据不能使用适用原创 2021-05-10 00:32:34 · 1208 阅读 · 4 评论 -
Mybatis从入门到精通系列 13 —— 基于注解配置的增删改查
Mybatis 开发也可以使用注解,使用注解的好处就是可以减少编写 Mapper 映射文件,适合简单的数据处理,如动态 SQL 语句在注解开发中也可以使用,但是不如映射文件灵活。本文我们针对 Mybatis 注解开发中的常用注解以及基本的 CRUD 进行分析。文章目录一、Mybatis 的常用注解说明二、Mybatis 注解开发需要说明的问题三、使用 Mybatis 注解实现基本 CRUD3.1 编写实体类3.2一、Mybatis 的常用注解说明@Insert:实现新增@Update:实现原创 2021-05-12 11:45:49 · 1113 阅读 · 0 评论 -
Mybatis从入门到精通系列 14 —— 基于注解配置的一对一查询与一对多查询
上篇文章我们对 Mybatis 的 @Select、@Insert、@Delete、@Update、以及 @Results 注解的一部分进行了分析,本文我们将继续分析 Mybatis 中的其余注解。实现复杂关系映射之前我们可以在映射文件中通过配置来实现,在使用注解开发时我们需要借助@Results 注解,@Result 注解,@One 注解,@Many 注解。...原创 2021-05-18 23:56:57 · 1223 阅读 · 1 评论 -
Mybatis从入门到精通系列 15 —— 嵌套查询与嵌套结果
Mybatis 在映射文件中加载关联关系对象主要通过两种方式:嵌套查询与嵌套结果。嵌套查询是指通过执行另外一条 SQL 映射语句来返回预期的复杂类型;嵌套结果是使用嵌套结果映射来处理重复的联合结果的子集。...原创 2021-05-27 00:12:19 · 7062 阅读 · 2 评论 -
Spring 从入门到精通系列 01 —— Spring概述与体系结构总结
文章目录一、Spring概述1.1 Spring 是什么1.2 Spring 的优势1.3 spring 的体系结构1.3.1 Core Container 核心容器1.3.2 Data Access/Integration 数据访问/集成1.3.3 Web1.3.4 其他二、程序的耦合及解耦2.1 程序的耦合2.2 工厂模式解耦一、Spring概述1.1 Spring 是什么 Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IOC(Inverse ..原创 2021-05-31 23:11:07 · 672 阅读 · 1 评论 -
Spring 从入门到精通系列 02 —— 程序的耦合问题及工厂模式解耦
文章目录程序的耦合及解耦一、程序的耦合二、工厂模式解耦三、分析工厂模式中的问题并改造程序的耦合及解耦一、程序的耦合耦合:程序间的依赖关系包括,以下两个方面:类之间的依赖方法间的依赖解耦:降低程序间的依赖关系实际开发中:应该做到,编译期不依赖,运行时才依赖。解耦的思路:第一步:使用反射来创建对象,而避免使用new关键字。第二步:通过读取配置文件来获取要创建的对象全限定类名。注意:我们应该明确的是,不能彻底的解决依赖的问题,只能通过方式方法来降低依赖。那么我们下面通过例..原创 2021-05-31 23:59:31 · 420 阅读 · 4 评论 -
Spring 从入门到精通系列 03 —— 使用 Spring 的 IOC 解决程序耦合
本文针对 IOC 的概念与在 Spring 中如何使用 IOC 进行分析与讲解。文章目录一、IOC 的概念和作用二、使用 Spring 的 IOC 解决程序耦合2.1 Spring 基于 XML 的 IOC 环境搭建2.2 ApplicationContext 的三个实现类2.3 BeanFactory 和 和 ApplicationContext 的区别一、IOC 的概念和作用 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计原创 2021-06-01 02:02:09 · 342 阅读 · 0 评论 -
Spring 从入门到精通系列 04 —— Spring 中创建 bean 的三种方式
Spring 对 bean 的管理细节包括:创建 bean的三种方式、bean 标签的作用范围以及 bean 对象的生命周期,本文针对此部分进行分析与解读。文章目录一、创建bean的三种方式1.1 使用默认构造函数创建。1.2 使用普通工厂中的方法创建对象1.3 使用工厂中的静态方法创建对象二、bean 标签的作用范围调整三、bean 对象的生命周期一、创建bean的三种方式1.1 使用默认构造函数创建。在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属原创 2021-06-01 02:49:10 · 1049 阅读 · 1 评论 -
Spring 从入门到精通系列 05 —— Spring 依赖注入的三种方式
本文针对 Spring 的依赖注入的概述以及三种注入方式进行分析和讲解。文章目录一、spring的依赖注入概述二、使用构造函数三、set 方法注入四、复杂类型的注入/集合类型的注入一、spring的依赖注入概述依赖注入:Dependency InjectionIOC的作用:降低程序间的耦合(依赖关系)依赖关系的管理:以后都交给 spring 来维护在当前需要用到其他类的对象,由 spring 为我们提供,我们只需在配置文件中说明依赖关系的维护:就称之为依赖注入能注入的数原创 2021-06-01 03:45:31 · 1014 阅读 · 1 评论 -
Spring 从入门到精通系列 06 —— Spring 中的 IOC 常用注解
Spring 的 IOC 常用注解主要有用于创建对象的、用于注入数据的、用于改变作用范围的以及和生命周期相关的四部分,本文针对此块内容,进行深入分析与解读。文章目录Spring 中的 IOC 常用注解一、用于创建对象的1.1 Component1.2 Controller(一般用在表现层)1.3 Service(一般用在业务层)1.4 Repository(一般用于持久层)二、用于注入数据的2.1 Autowired2.2 Qualifier2.3 Resource2.4 Value:三、用于改变原创 2021-06-01 05:34:56 · 854 阅读 · 1 评论 -
Spring 从入门到精通系列 07 —— 基于XML与注解方式的IOC案例编写
本文使用 XML 方式和注解方式实现单表的 CRUD操作,连带巩固 IOC 配置过程。文章目录一、基于 XML 的 IOC 的案例1.1 导入依赖1.2 账户实体类1.3 业务层接口及实现类1.4 持久层接口及实现类1.5 bean.xml ★1.6 测试方法二、基于注解配置的 IOC 案例2.1 业务层接口实现类2.2 持久层接口实现类2.3 bean.xml ★一、基于 XML 的 IOC 的案例工程目录:1.1 导入依赖<dependencies> <dep原创 2021-06-01 23:36:46 · 399 阅读 · 2 评论 -
Spring 从入门到精通系列 08 —— 纯注解方式实现 IOC 案例与 Junit 整合
本文针对Spring使用纯注解开发,并对 Spring 整合 Junit 做了一定的分析。文章目录一、 spring中的新注解1.1 Configuration1.2 ComponentScan1.3 Bean1.4 Import1.5 PropertySource二、Spring 整合 Junit (了解)2.1 问题分析2.2 Spring 整合 junit配置一、 spring中的新注解1.1 Configuration作用: 指定当前类是一个配置类细节: 当配置类作为 Ann原创 2021-06-02 08:32:18 · 203 阅读 · 0 评论 -
Spring 从入门到精通系列 09 —— 转账方法的事务问题与动态代理
本文由转账方法中存在的事务问题引出事务控制的方法,最后简述动态代理方法,实现统一维护。文章目录一、转账方法的事务问题(了解)1.1 问题分析1.2 创建 ConnectionUtils类1.3 事务管理相关的工具类1.4 更新事务控制1.5 其他代码二、动态代理一、转账方法的事务问题(了解)1.1 问题分析为了说明事务问题,我们创建一个新的项目,并添加转账方法。账户的业务层接口及其实现类:/** * 账户的业务层实现类 */public class AccountServiceImp原创 2021-06-02 10:50:22 · 620 阅读 · 0 评论 -
Spring 从入门到精通系列 10 —— 使用 Spring 进行面向切面编程(AOP)
本文针对 AOP 的概念作用进行了分析,并且对基于 XML 与注解两种方式配置 AOP 进行了解读。文章目录一、AOP 概述1.1 什么是 AOP1.2 AOP 的作用及优势1.3 AOP 的实现方式1.4 Spring 中 AOP 的 相关术语二、Spring 中基于 XML 的 AOP 配置步骤 ★2.1 工程准备2.2 配置 AOP 步骤2.3 切入点表达式的写法2.3.1 切入点表达式的通常写法2.3.2 通用化切入点表达式2.4 四种常用类型通知与环绕通知2.4.1 四种常用类型通知2.4.原创 2021-06-02 15:43:19 · 502 阅读 · 1 评论 -
Spring 从入门到精通系列 11 —— Spring 中的 JdbcTemplate
本文针对 Spring 中的 JdbcTemplate 进行了分析,并实现对数据库的操作。文章目录一、JdbcTemplate 概述二、JdbcTemplate 对象的创建三、JdbcTemplate 的应用3.1 JdbcTemplate 的简单使用3.2 JdbcTemplate 的增删改查3.2 在 Spring 中应用 JdbcTemplate3.2.1 编写 spring 的配置文件3.2.1 配置数据源3.2.3 持久层及其实现类3.2.4 测试方法一、JdbcTemplate 概原创 2021-06-02 19:30:19 · 949 阅读 · 1 评论 -
Spring 从入门到精通系列 12—— Spring 中的事务控制
在 《Spring 从入门到精通系列 09——转账方法的事务问题与动态代理》 一文中,我们讲到了转账方法存在着事务问题,当在业务层方法更新转入账户时发现异常,更新收款方账户则会出错。 当时是通过自定义事务管理器进行整体事务的处理。其实Spring 提供了业务层的事务处理解决方案,并且 Spring 的事务控制都是基于 AOP 的。文章目录一、环境准备二、基于 XML 的事务控制Spring 中基于 xml 的声明式事务控制配置步骤 ★ 三、基于注解的事务控制Spring 中基于 xml 的声明式原创 2021-06-02 23:07:39 · 539 阅读 · 8 评论 -
SpringMVC 从入门到精通系列 01 —— SpringMVC 概述与入门案例
本文是SpringMVC 从入门到精通系列的第一篇,主要针对 SpringMVC 概述进行阐述,并实现入门案例,分析其大致流程。文章目录一、三层架构和MVC1.1 三层架构1.2 MVC模型二、SpringMVC的入门案例2.1 SpringMVC 的概述2.2 SpringMVC 的入门程序2.3 入门案例的执行过程分析2.4 mvc:annotation-driven 说明补充:创建 maven 工程过慢的解决方案一、三层架构和MVC1.1 三层架构开发服务器端程序,一般都基于两种形式原创 2021-06-03 01:49:55 · 497 阅读 · 0 评论 -
SpringMVC 从入门到精通系列 02 —— 请求参数的绑定
文章目录一、请求参数的绑定说明1.1 绑定机制1.2 支持的数据类型二、基本数据类型和字符串类型三、实体类型(JavaBean)四、给集合属性数据封装五、请求参数中文乱码的解决六、自定义类型转换器七、在控制器中使用原生的 ServletAPI 对象一、请求参数的绑定说明1.1 绑定机制表单提交的数据都是 k=v 格式的 username=haha&password=123SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的要求:提交表单的 name原创 2021-06-03 09:56:17 · 308 阅读 · 1 评论 -
SpringMVC 从入门到精通系列 03 —— 常用注解
文章目录1. RequestParam 注解2. RequestBody 注解3. PathVariable 注解4. RequestHeader 注解(了解)5. CookieValue 注解(了解)6. ModelAttribute 注解7. SessionAttributes 注解1. RequestParam 注解作用: 把请求中的指定名称的参数传递给控制器中的形参赋值属性:value: 请求参数中的名称required: 请求参数中是否必须提供此参数,默认值是true,必须提原创 2021-06-03 11:10:56 · 208 阅读 · 1 评论 -
SpringMVC 从入门到精通系列 04 —— 返回值分类和转发和重定向的实现
文章目录一、 返回值分类1.1 返回字符串1.2 返回值是 void1.3 返回值是ModelAndView对象二、SpringMVC框架提供的转发和重定向1.1 forward 请求转发2.2 redirect 重定向三、ResponseBody 响应 json 数据3.1 响应json数据之过滤静态资源3.2 使用 @RequestBody 获取请求体数据3.3 使用 @RequestBody 注解把 json 的字符串转换成 JavaBean 的对象3.4 使用 @ResponseBody 注解把原创 2021-06-03 12:59:33 · 478 阅读 · 1 评论 -
SpringMVC 从入门到精通系列 06 —— Ajax的实现方式总结
文章目录一、$.ajax()方式实现二、$.post() 方式三、补充:不响应 json 对象的一种方式后文的 java 后台代码,省略了以下代码,使用这种二级目录结构方便管理一些… 废话不多说,马上就开始!@Controller@RequestMapping("/testAjax")public class AjaxController { ...}一、$.ajax()方式实现前端:$('#btn1').click(function (){ var param = {us.原创 2021-06-17 23:43:30 · 561 阅读 · 2 评论 -
SpringMVC 从入门到精通系列 05 —— SpringMVC 实现文件上传
文章目录SpringMVC框架提供了MultipartFile对象,该对象表示上传的文件,要求变量名称必须和表单file标签的name属性名称相同。具体步骤如下:导入依赖:<!--文件上传组件--><dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version&g原创 2021-06-03 15:21:07 · 189 阅读 · 1 评论 -
SpringMVC 从入门到精通系列 07 —— 拦截器与异常处理
文章目录1. 拦截器概述2. 自定义拦截器步骤3. HandlerInterceptor接口中的方法4. 配置多个拦截器1. 拦截器概述SpringMVC框架中的拦截器用于对处理器进行 预处理 和 后处理 的技术。可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。拦截器和过滤器的功能比较类似,有如下区别:过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。拦截器是 SpringMVC 框架独有的。过原创 2021-07-20 22:16:56 · 412 阅读 · 1 评论