当前位置: 首页 > article >正文

2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通

第一章:认识Spring

spring思维导图

在这里插入图片描述
在这里插入图片描述

01p/102p Spring认识框架

在这里插入图片描述

在这里插入图片描述

02p/102p Spring官网浏览以及资源介绍

03p/102p 框架内部模块在这里插入图片描述

第二章 IoC控制反转

04p/102p IoC概念

在这里插入图片描述
在这里插入图片描述

05p/102p 创建对象的方式

在这里插入图片描述

06p/102p IoC的实现技术

在这里插入图片描述
在这里插入图片描述

07p/102p 第一个例子创建对象

在这里插入图片描述

08p/102p 创建spring配置文件

在这里插入图片描述

09p/102p 创建容器对象ApplicaitonContext【拿到spring创建的对象】

在这里插入图片描述

    @Testpublic void test02(){String config = "beans.xml";ApplicationContext ac = new ClassPathXmlApplicationContext(config);SomeService service = (SomeService) ac.getBean("someService");service.doSome();}

10p/102p spring创建对象的时机

在这里插入图片描述

11p/102p 获取容器中对象信息的api

在这里插入图片描述

@Testpublic void test03(){String config = "beans.xml";ApplicationContext ac = new ClassPathXmlApplicationContext(config);//获取容器中定义的对象的数量int nums = ac.getBeanDefinitionCount();System.out.println("容器中定义的对象数量是:"+nums);//获取容器中定义的对象的名称String names[] = ac.getBeanDefinitionNames();for (String name:names){System.out.println(name);}}

12p/102p 创建非自定义对象

在这里插入图片描述

在这里插入图片描述

13p/102p 设值注入概念【注入就是赋值】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14p/102p 简单类型的设值注入实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15p/102p 单元测试junit

就是因为在main文件中测试不方便,不能独立测试每一个方法,所以提出单元测试
在这里插入图片描述
在这里插入图片描述

16p/102p 设值注入【set注入】的注意事项

在这里插入图片描述

在这里插入图片描述

17p/102p 设值注入只是使用set方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

18p/102p 引用类型的设值注入

在这里插入图片描述
在这里插入图片描述

19p/102p 构造注入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

20p/102p 构造注入创建文件对象

在这里插入图片描述
在这里插入图片描述

21p/102p 复习第一天内容【思维导图】

在这里插入图片描述

在这里插入图片描述

22p/102p 复习IoC

在这里插入图片描述

23p/102p IoC作业

在这里插入图片描述

在这里插入图片描述

24p/102p 自动注入byName

简化对于引用类型的重复赋值,减少冗余
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

25p/102p 自动注入byType

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

26p/102p 为什么使用多配置文件

大型项目中,需要多个配置文件。
在这里插入图片描述

27p/102p 包含关系的配置文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

28p/102p 注解的使用步骤

在这里插入图片描述
在这里插入图片描述

29p/102p Component注解使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

30p/102p 组件扫描器

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

31p/102p 多注解项目分层

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不清楚要用上面三个注解的情况就用@Component。

32p/102p 扫描多个包的方法

在这里插入图片描述

33p/102p 简单类型属性赋值

在这里插入图片描述

34p/102p 引用类型属性赋值AutoWired自动注入,使用byType

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

步骤:首先扫描配置文件ApplicaitonContext,使用组件扫描器扫描base-package,创建包中所有对象,根据其中的注解注入【赋值】。
在这里插入图片描述

35p/102p 引用类型属性赋值AutoWired自动注入,使用byName

·
在这里插入图片描述

比较
在这里插入图片描述1在这里插入图片描述

36p/102p 引用类型AutoWired的required属性

在这里插入图片描述

37p/102p 引用类型AutoWired的required属性推荐使用默认值true

使用true, 尽早解决程序中的问题,报错。

38p/102p 引用类型Resource

Resource是来自于JDK中的注解,不是来自于spring的。
在这里插入图片描述
在这里插入图片描述

39p/102p xml配置文件和注解的对比

在这里插入图片描述

经常改的就是使用xml配置文件、不经常改的就使用注解。
注解为主,配置文件为辅

注解配置文件
快,方便
比较乱

在这里插入图片描述

40p/102p 复习【控制反转】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

41p/102p 复习动态代理的实现方式

在这里插入图片描述

42p/102p 用注解实现Ioc作业

1、加入依赖
2、创建类,在类中加入注解
3、声名组件扫描器

43-45p/102p 使用动态代理实现一个功能增强

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

46p/102p AOP面向切面编程【底层的实现就是动态代理】

动态代理很灵活【很难掌握,所以经过规范化,形成了】————>AOP面向切面编程
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

47p/102p 理解面向切面编程

在这里插入图片描述
在这里插入图片描述

48p/102p 术语和AOP实现框架

在这里插入图片描述

一个切面的三个要素
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

49p/102p 【切面的执行时间】aspectj的5个通知注解

在这里插入图片描述

50p/102p 【切面的执行位置】切入点表达式语法

在这里插入图片描述
在这里插入图片描述

51p/102p 切入点表达式事例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

52p/102p 创建maven项目

实现AOP的方法:动态代理——————>使用框架aspectj实现

53p/102p aspectj实现aop步骤

在这里插入图片描述

54p/102p aspectj实现【创建切面类和配置文件】

步骤2:加入依赖
在这里插入图片描述
步骤3:创建目标类,接口和它的实现类
在这里插入图片描述
在这里插入图片描述
步骤 4:创建切面类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤5:创建xml配置文件,把对象交给spring容器来管理。
1、 由spring容器来进行目标对象和切面对象的创建。、
2、声名自动代理生成器,就不需要使用proxy手动创建代理对象了
在这里插入图片描述
在这里插入图片描述

55p/102p 目标类有接口是动态代理在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

56p/102p 切入点表达式的多种写法

在这里插入图片描述

演示错误的切面表达式
在这里插入图片描述
在这里插入图片描述

57p/102p 复习aop【思维导图复习】

在这里插入图片描述

58p/102p 复习aspectj【思维导图复习】在这里插入图片描述

59p/102p JointPoint在这里插入图片描述

在这里插入图片描述

测试:

在这里插入图片描述
在这里插入图片描述

60p/102p 后置通知AfterReturning

留有疑问:如果是返回值类型是自定义对象,难么会改变吗?
在这里插入图片描述
在这里插入图片描述

61p/102p 环绕通知Around

在这里插入图片描述

环绕通知类似于JDK动态代理的InvocationHandler接口
在这里插入图片描述
在这里插入图片描述

62p/102p 环绕通知Around的功能演示

环绕通知Around控制目标方法是否执行
在这里插入图片描述
环绕通知Around修改目标方法执行结果
在这里插入图片描述
在这里插入图片描述

环绕通知可以处理事务,在目标方法之前开启事务,执行目标方法,在目标方法之后提交事务。

63p/102p 异常通知【了解】在这里插入图片描述

64p/102p 最终通知【了解】

在这里插入图片描述

65p/102p PointCut注解【辅助注解】

在这里插入图片描述
在这里插入图片描述

66p/102p 没有接口使用的aop是用cglib实现的

在这里插入图片描述

67p/102p 有接口也可以使用cglib实现

如果有接口,默认使用jdk动态代理,但是如果在有接口的情况下,想使用cglib接口的话,就在xml文件中加一句代码。
使用JDK动态代理的情况:
在这里插入图片描述
使用cglib动态代理
在这里插入图片描述

68p/102p spring集成mybatis的思路

在这里插入图片描述在这里插入图片描述

首先回忆mymatis的实现步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

69-70p/102p 整合创建dao接口和mapper文件

在这里插入图片描述

创建实体类
在这里插入图片描述
创建dao接口
在这里插入图片描述
创建mapper映射文件
在这里插入图片描述

70p/102p 创建mybatis主配置文件在这里插入图片描述

71p/102p 创建service类【实现业务分层】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

72p/102p druid连接池的文档

在这里插入图片描述

73p/102p 配置DataSource在这里插入图片描述

74p/102p 配置SqlSessionFactoryBean

在这里插入图片描述

出bug了,原因如下:

在这里插入图片描述
在这里插入图片描述

修改之后依然报错,暂时先放着,往后学习其他内容。

75p/102p 配置Dao类

在这里插入图片描述

注意在spring和mybatis整合时,spring配置文件中需要创建的对象是:数据源、Factory、dao三大类。

76p/102p 测试容器中的Service和dao对象

在这里插入图片描述

实际上最重点的就是配置文件中的三个bean,
第一个是数据源:datasource
在这里插入图片描述
第二个是sqlSessionFactory,通过myDataSource和mybatis主文件,就能创建出sqlSessionFactory对象。
在这里插入图片描述
第三个bean是:
在这里插入图片描述

77p/102p 使用属性配置文件

在这里插入图片描述

目前为止就是所有mybatis和spring的整合。必须会。

78-79p/102p 复习aop、整合mybatis和spring

什么时候考虑使用aop?
就是在你要对原有功能做一个功能增强的时候。
要给项目中的多个类增加一个相同的功能的时候
要给业务方法增加事务,日志输出时。
在这里插入图片描述
在这里插入图片描述

80p/102p 处理事务的问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

81p/102p 统一处理事务的优势

在这里插入图片描述

82p/102p spring处理事务的统一方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

83p/102p spring控制事务的三个方面

以下三个方面中最重要的是事务的传播行为,接下来是事务的隔离级别,然后是事务的超时时间。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

required

在这里插入图片描述

support

在这里插入图片描述

required_new
在这里插入图片描述

84p/102p spring控制事务的三个方面【第三方面:事务的传播行为】在这里插入图片描述

85p/102p spring控制事务-通过电商案例演示spring处理事务【创建实体类】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

86p/102p spring控制事务-通过电商案例演示spring处理事务【创建dao类】

在这里插入图片描述

87p/102p spring控制事务-通过电商案例演示spring处理事务【创建dao类对应的xml映射文件】

在这里插入图片描述

88p/102p spring控制事务-通过电商案例演示spring处理事务【创建配置文件】

在这里插入图片描述

89p/102p spring控制事务-通过电商案例演示spring处理事务【测试buy方法】

在这里插入图片描述
在这里插入图片描述

90p/102p spring控制事务-通过电商案例演示spring处理事务【通过aop给buy方法添加事务】

在这里插入图片描述

91p/102p spring控制事务-通过电商案例演示spring处理事务【注解使用事例】

在这里插入图片描述
在这里插入图片描述

92p/102p spring控制事务-通过电商案例演示spring处理事务【@Transactional使用的技巧】

在这里插入图片描述

93p/102p 大型项目中怎么做事务【通过aspectj】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

94p/102p 配置方法的事务属性【通过通配符,为很多的方法添加事务】在这里插入图片描述

95p/102p 配置aop

在这里插入图片描述

要熟悉配置事务的两种方式,一种是注解方案,另一种是使用aspectj框架,在spring中配置,这种方式业务方法和配置完全分离。

96p/102p 解释aop的配置切入点表达式

97p/102p 搭建Web项目环境在这里插入图片描述

在这里插入图片描述

98p/102p 创建页面

在这里插入图片描述

99p/102p 创建Servlet

在这里插入图片描述

创建成功了,但是依然报错,没找出问题。妈的

100p/102p 配置监听器

在这里插入图片描述
在这里插入图片描述

加入依赖
在这里插入图片描述
在web.xml中注册监听器
在这里插入图片描述

101p/102p 监听器源代码

在这里插入图片描述
在这里插入图片描述

102p/102p 工具类使用

最一个项目只需要记住下面就可以了。
在这里插入图片描述
在这里插入图片描述

完结:2021.6.26 18:00

http://www.lryc.cn/news/2416557.html

相关文章:

  • TC流量控制
  • 2023最新PHP短网址短链接生成源码
  • NOIP2022 喵了个喵
  • Android AOSP LatinIME输入法自定义图片按钮
  • ExitProcess,TerminateProcess,CreateToolhelp32Snapshot,Process32First,Process32Next,OpenProcess
  • windows进程 windows多进程编程
  • JavaScript之表单验证
  • 从零开始了解《间之楔动漫》:带你领略这部作品的独特魅力!
  • 光盘加密大师轻松为光盘加密
  • 一个简单的TODO,原来这么好用
  • a标签href属性的用法
  • #python学习笔记(五)#循环语句
  • 微信小程序毕业设计-网上商城系统项目开发实例(附源码+演示视频+LW)
  • 怎么使用bootstrap
  • 微软官方原版win7(64位/32位)旗舰版系统下载【适合所有品牌】
  • NVIDIA Jetson TX1(3)
  • 参考文献类型标识码--中英文对照
  • 虚拟机常规使用及网络配置
  • AppSettings和ConnectionStrings的使用。
  • 十大监控电脑桌面的软件,电脑监控软件就它了
  • history对象,当前url添加参数且不刷新页面
  • 实例方法、类方法、静态方法的区别
  • CString中Left,Right,ReverseFind 用法
  • LINUX防火墙Firewall常用命令(非常详细)零基础入门到精通,收藏这一篇就够了
  • FTP服务器管理软件Serv-U的安装方法(服务器端)
  • 【Linux学习笔记】Linux镜像的下载与获取
  • CSS基础-07-盒子模型和轮廓(外边距 margin,边框border,内边距 padding,轮廓 outline)
  • 天尚网DotA专题站公测版隆重上线
  • 关于SetCapture() 和 ReleaseCapture()的用法
  • 计算机专业自学网站大全,零基础入门到精通