Spring学习笔记
2022-04-11 15:40:47 21 举报
Spring学习笔记,第一次写的笔记有些潦草。
作者其他创作
大纲/内容
框架概念
具有一定功能的半成品软件
框架的作用
提高开发效率
增强可重用性
提供编写规范
节约维护成本
解耦底层实现原理
Spring是什么
Spring是分层的JavaSE/EE应用,full-stack轻量级开源框架
Spring的体系结构
IoC是什么?
IoC(Inversion Of Control)控制反转,Spring反向控制应用程序所使用的外部资源;Spring控制的资源全部存放到Spring容器中(IoC容器)。
Bean的基本配置
id:使用接口名,在获取资源时使用
class:配置为接口的实现类的全路径
name:可以配置多个name,可以采用name获取资源。
scope:为singletons类加载的时候创建对象,prototype需要使用对象时才会创建(此时资源不属于spring容器管理)
init-method:初始化方法,单例时执行一次
destory-method:需要执行ClassPathXmlApplicationContext中的close方法才能看见现象
factory-method:创建对象使用静态工厂模式
factory-bean:创建对象采用的实例工厂模式,需要先创建实例工厂bean
DI是什么?
DI(Dependency Injection)依赖注入,应用程序运行依赖的资源由Spring为其提供,资源进入应用程序的方式称为注入。
set注入
构造器注入
集合注入
p命名空间
xmlns:p="http://www.springframework.org/schema/p"
SpEL表达式
properties中读取配置数据
import导入配置文
第三方资源配置
Spring的原始注解
注入dao
注入service
配置组件扫描
Spring的新注解
非自定义的Bean配置
加载properties文件的配置
组件扫描和引入其他文件的配置
测试
Spring整合
自定义类怎么写?
自定义导入器
自定义导入器类怎么写?
自定义注册器
自定义注册类怎么写?
Bean初始化解析
BeanFactoryPostProcessor:定义在bean工厂创建后,bean对象创建前执行的动作,用于对工厂创建后业务处理。当前操作用于对工厂进行处理,仅运行一次。
BeanPostProcessor:定义了所有bean初始化前后进行统一动作,用于对bean进行创建前业务处理与创建后业务处理。当前操作伴随着每个bean的创建过程,每次创建bean均运行该操作。
InitializingBean:定义了每个Bean初始化前的动作,属于非统一性动作,用于对bean进行创建前业务处理。当前操作伴随着任意一个bean的创建过程,保障其个性化业务处理。
Spring的AOP(Aspect Oriented Programming)
概念:面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
AOP的作用及其优势:
作用:在程序运行期间,在不修改源码的情况下对方法进行加强。
优势:减少重复代码,提高开发效率,便于后续维护
AOP的动态代理技术
JDK代理:基于接口的动态代理
cglib代理:基于父类的动态代理
AOP相关术语
Target(目标对象):需要增强的对象
Proxy(代理对象):被织入增强后形成的结果代理类。
Joinpoint(连接点):被拦截到的方法,可以增强的方法。
PointCut(切入点):被选中增强的方法。
Advice(通知/增强):被拦截方法后要做的事。
Aspect(切面): 切入点和通知的结合。
Weaving(织入):把增强应用到目标对象来创建新的代理对象的过程。
AOP快速入门
AOP的XML配置详解
切点表达式
访问修饰符:可以省略
返回值类型、包名、类名以及方法名可以使用*代表任意
包名与类名之间的点.代表包下面的类,两个点..代表当前包以及其子包下的类
参数列表可以使用两个点..表示任意个数、任意类型的参数列表
通知类型
抽取切点表达式
AOP的注解形式
xml配置文件
目标对象配置注解
切面如何配置注解
切点表达式注解怎么使用
AOP底层原理
静态代理
装饰器模式(Decorator Pattern):在不惊动原始设计的基础上,为其添加功能
装饰器类怎么写
装饰器怎么测试
JDK Proxy动态代理
JDK Proxy动态代理类怎么写
JDK Proxy动态代理怎么测试
cglib(code generation library)动态代理
cglib动态代理类怎么写
cglib动态代理类怎么测试
织入时机
事务管理
事务回顾
事务的特征(ACID)
Atomicity(原子性):事务是一个不可分割的整体,要么全执行,要么全不执行
Consistency(一致性):事务前后数据完整性必须一致
Isolation(隔离性):多个用户并发访问数据库时,数据库为每个用户开启事务隔离,避免事务之间操作数据发生干扰
Du'rability(持久性):事务一旦提交,它对数据库的改变就是永久性的
事务隔离级别
脏读:Read commited(表级读锁)
不可重复读:Repeatable Read(行级写锁)
幻读:Serializable(表级写锁)
事务管理
Spring事务核心对象
编程式事务
AOP改造事务
AOP配置
事务类
服务类
测试类
声明式事务(XML)
tx:method属性
声明式事务(注解)
注解配置再接口上、方法上配置特例
applicationContext怎么配置
纯注解驱动
接口
spring配置
配置事务数据源类
事务传播行为
模板对象
JDBCTemplate
RedisTemplate
事务底层原理解析
策略模式(Strategy Pattern)
装饰模式
0 条评论
下一页