参考
拉钩高薪训练营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就解决不了

横切逻辑代码存在的问题:

  • 横切代码重复
  • 横切代码和业务代码混杂,维护不方便

解决的问题:将横切逻辑代码从业务代码中抽取出来,实现横切逻辑代码与业务代码的解耦,减少重复横切逻辑代码