AOP:面向切面编程
动态代理只是AOP的一种技术实现手段,AOP 是一种编程思想,Aspect切面:由某几个本来不相干的东西,组到一块去形成已给到新的产品, 切面最关键的就是解耦。
切面不仅仅有增强功能,还有解耦功能,指定规则的功能。例如:expretion:切面表达式com.csdn.*.service.** 就是指定一个规则,与其说是面向切面编程,还不如说是面向规则编程。比如说事务代理:加在service层,事务要加在service层的增删改方法上.面向切面编程,其实就是面向规则编程,针对某一个规则去指定特有的逻辑,给他增加上去,形成一个新的产品.
OOP:面向对象编程
OOP 封装、继承、多态
OOP:就是用代码去描述世界
现象(关注技术细节,面向过程)
面向对象:关心的是事务之间的联系。先理清楚需求之间的关联关系,再开始干
BOP:面向Bean编程
Bean与Bean之间的关系,不希望每次人为地重复管理,由程序实现自动管理.Spring就是从Bean的管理开始的
IOC:控制反转
创建的对象的控制(new的权力)权力反转。Spring之前谁使用谁new,有了Spring以后,所有的Bean 都由 Soring 来new .所以才叫做控制反转了。 new出来以后的对象需要统一管理起来,所以才有了IOC容器(IOC 容器就是一个key value 组成的Map)
DI技术
解决动态的赋值问题,动态的调用getter、setter (通常是采用反射)