ioc
- spring整体架构
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
在Spring框架中的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等特性功能。
- spring知识细节
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
- Spring控制反转
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
- IOC容器
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
- IOC容器初始化过程
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
- 注入方式/作用域/生命周期
见讲课笔记
aop
- 什么是AOP
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
一种思想,Spring实现了这种思想。从和宏观来看,是在线性的程序中“插入/切入”了某个功能。“插入/切入”的“地方(点)”称为切点。“某个功能”称为通知。
- AOP重要概念
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
例如:类A中有一个方法getA,现在要在getA方法执行前做一个增强,并将“增强”的功能写在B类的getB方法中,则我们引出一下概念:
- AOP
一种横切技术
- 切点
被增强的方法。上述例子中getA是切点。
- 切面
通知所在的类,就是切面,切面中可能会有多个通知。上述例子中,B类是切面。
- 通知
增强的带部分,这个部分通常写到一个方法中,上述例子getB就是通知。
- 动态织入
动态代理类增强目标类的这个动作,就是动态织入。
- 委托类
目标类,上述例子中A类是委托类。
- 代理类
生成的那个代理类,可以是静态代理,也可以是动态代理。
- 代理方式
JDK代理(要求被代理类必须实现接口,动态代理类跟委托类是兄弟关系),CGLIB代理(不必实现接口,动态代理类是委托类的子类)。
- AOP的使用场景
1)声明式事务
之所以叫“声明式事务”,是相对于编程式事务而言的,编程式事务,例如JDBC手动代码制定是否开启事务、是否提交事务、是否回滚事务等都是手工写代码写出来的,而“声明式事务”不需要手工编写带,只需要在springxml中配置一个切面和切点即可,切点就是“需要加事务控制的”方法,这是一种实现方式。另外,还有一个种实现方式,就是在“需要加事务控制的”方法上使用@Trasactional注解。@Trasactional还可以配置事务的传播属性/行为——本质就是Connection对象的使用方式,例如在ABC方法中是否使用同一个connection对象。
2)拦截器
它不依赖web容器。配置在springmvc.xml中而不是配置在web.xml中。PS:web.xml中只配置J2EE官方组件,拦截器是“民间组件”。
3)性能监控,在方法调用前后记录调用时间,方法执行太长或超时报警。
4)记录日志,在方法执行前后记录系统日志。
5)权限验证,方法执行前验证是否有权限执行当前方法,没有则抛出没有权限执行异常,由业务代码捕捉。
6)工作流系统,工作流系统需要将业务代码和流程引擎代码混合在一起执行,那么我们可以使用AOP将其分离,并动态挂接业务。
获取更多资源请关注微信公众号:AKA程序王