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创建的对象】

在这里插入图片描述

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

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

在这里插入图片描述

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

在这里插入图片描述

@Test
    public 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);
        }
    }

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值