Spring5学习笔记

一、Spring概念

  • Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC
  • 轻量级开源JavaEE框架。
    在这里插入图片描述

二、IOC容器

1、基于xml方式

  • 控制反转,把创建对象过程交给spring进行管理。
    在这里插入图片描述
    注意:上面默认对象创建时为单实例,单实例在加载配置文件时候就会创建对象,多实例模式在加载配置文件时不会创建对象,在调用getBean()方法时创建多实例对象。
    bean的单实例和多实例声明如下:
    在这里插入图片描述
    bean声明的时候不仅有singleton、prototype,还有request、session,当使用request、session时会把创建的对象放到request或session里面。

如下图,若修改dao的名称,直接修改xml文件即可,不用修改代码
在这里插入图片描述

  • IOC操作Bean管理
    (1)基本类型和对象
    在这里插入图片描述
    (2)数组和List、Map集合类型
    方式一:
    在这里插入图片描述
    简化。方式二:
    在这里插入图片描述- IOC的Bean工厂(FactoryBean)
    1、spring有两种bean类型
    (1)普通Bean,在配置文件中定义Bean类型就是返回类型
    同上
    (2)工厂Bean,在配置文件中定义Bean类型和返回类型不一样
    在这里插入图片描述在这里插入图片描述
  • bean的生命周期
    声明初始化和销毁方法
    在这里插入图片描述
    在这里插入图片描述
  • xml自动装配
    以上的xml声明bean的时候都是使用<property></property>手动装配的,自动装配有两种方式(在注解中就对应@Autowried按byType自动注入,而@Resource默认按byName自动注入):
    在这里插入图片描述
  • xml管理外部属性文件.properties(如数据库连接信息等)
    比如下面的例子,就可以提取出来
    在这里插入图片描述
    (1)提取属性值到properties文件,文件放在src根目录下
    在这里插入图片描述
    (2)引入名称空间、引入外部属性文件、使用表达式
    在这里插入图片描述

2、基于注解方式

  • 创建对象
    (1)基本使用
    在这里插入图片描述
    (2)组件扫描过程中,使用的是默认的filter,如果要使用自定义filter,需要修改为以下配置
    在这里插入图片描述
  • 注入属性
    (1)基于注解方式实现属性注入
    (顺便解释下@Autowired、@Resource、@Qualifier、@Value的区别,注意它们所在包,@Resource属于java扩展包,不是Spring)
    在这里插入图片描述

3、完全注解开发

比如上面的注解创建对象中,xml的组件扫描步骤可以使用配置类代替
在这里插入图片描述
加载创建对象时不再加载xml文件,使用配置类
在这里插入图片描述

三、Aop

1、Aop概念

  • 面向切面,不修改源代码进行功能增强。
  • Aop四大术语
    在这里插入图片描述
  • Aop底层使用动态代理
    (1)有接口情况,使用jdk动态代理
    在这里插入图片描述
    代码:
    在这里插入图片描述

(2)没有接口情况,使用CGLIB动态代理
在这里插入图片描述

2、Aop操作

  • spring框架一般都基于AspectJ实现Aop操作

  • 可以参考一下第三阶段:5、Spring之AOP

  • 注解方式实现aop
    在这里插入图片描述
    注意:上面依旧有xml少量配置,如果完全使用注解,可使用以下方式代替xml配置
    在这里插入图片描述

  • 切入点抽取
    像上面的@Before、@AfterReturning中对相同切入点进行提取,可使用以下方式:
    1、新建切入点公共类,使用@Pointcut注解
    在这里插入图片描述

  • 切入方法的优先级设置
    在这里插入图片描述

  • 配置文件方式实现aop
    在这里插入图片描述

四、JdbcTemplate

  • 配置文件方式
    (1) 引入依赖jar
    (2)配置数据库连接池
    (3)配置JdbcTemplate对象,注入DataSource
    在这里插入图片描述
    (4)jdbcTemplate操作数据库
    (4-1)执行查询sql(返回基本类型、对象、集合)在这里插入图片描述
    (4-2)批量增、删、改
    在这里插入图片描述

五、事务管理

  • spring进行事务管理有两种方式
    (1)编程式事务管理
    (2)声明式事务管理(底层使用Aop)
    (2-1)基于注解
    在这里插入图片描述
    上面的第二步注解方式可以替换成配置文件,实现完全注解
    在这里插入图片描述

注解@Transactional的参数说明
在这里插入图片描述

(2-2)基于xml
(3)补充事务中出现的三种读问题:脏读、幻读、不可重复读。这三个问题都能用事务隔离级别解决
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

六、Spring5新特性

1、日志log4j

2、注解

(1)@Nullable
在这里插入图片描述

3、测试功能改进

(1)JUnit4
在这里插入图片描述
(2)JUnit5
在这里插入图片描述

4、SpringWebFlux(重点)

(1)webflux介绍:异步非阻塞的框架

(1-1)与SpringMVC的区别
在这里插入图片描述
在这里插入图片描述

(2)响应式编程

(2-1)概念
在这里插入图片描述
(2-2)Reactor实现
在这里插入图片描述

(3)SpringWebflux执行流程和核心API

(4)SpringWebflux基于注解编程模型

在这里插入图片描述

(5)SpringWebflux基于函数式编程模型(全程无@Controller、@Service注解)

在这里插入图片描述

(6)补充WebClient使用

作用:模拟http请求,可指定请求地址、参数等
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值