参考
拉钩高薪训练营PDF笔记
spring优势
- 方便解耦,简化开发
- aop编程支持
- 声明式事务支持
- 方便测试
- 方便集成各种框架
- 降低Java EE API的使用难度
- 源码是经典Java学习范例
核心思想
ioc和aop是在spring之前就存在的理论,Spring在技术上对这两个思想进行了很好的实现。
ioc
inversion of control 控制反转
描述的事情:Java开发领域对象的创建、管理问题
控制:对象创建(实例化、管理)的权利 反转:控制权交给外部环境(Spring容器)
解决的问题:对象之间的解构问题
aop
Aspect oriented Programming ⾯向切⾯编程
切:指横切逻辑,例如权限校验、日志代码、事务控制、性能监控 面:横切逻辑代码往往要影响多个方法,每个方法是一个点,多个点构成面 AOP是OOP的延续,从OOP说起OOP三⼤特征:封装、继承和多态 oop是⼀种垂直继承体系 OOP编程思想可以解决⼤多数的代码重复问题,但是有⼀些情况是处理不了的,⽐如下⾯的在顶级⽗类 Animal中的多个⽅法中相同位置出现了重复代码,OOP就解决不了
横切逻辑代码存在的问题:
- 横切代码重复
- 横切代码和业务代码混杂,维护不方便
解决的问题:将横切逻辑代码从业务代码中抽取出来,实现横切逻辑代码与业务代码的解耦,减少重复横切逻辑代码