IOC
IOC(Inversion of Control)控制反转
1.IoC是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。
2.IoC还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,即由容器动态地将某种依赖关系注入到组件之中。
3.在Spring的工作方式中,所有的类都会在spring容器中登记,告诉spring这是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。
4.IoC的优点:降低了组件之间的耦合,降低了业务对象之间替换的复杂性,使之能够灵活的管理对象。
高度凝练版
IOC(Inversion of Control)控制反转,是一种设计思想,是一个重要的面向对象编程的法则
1.在java开发中,IoC可以让我们吧设计好的对象交给容器控制,而不是在对象内部直接控制。
2.对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。
AOP
AOP(Aspect Oriented Programming)面向切面编程
1.AOP利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的 逻辑封装起来,比如日志记录,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
高度凝练版
AOP(Aspect Oriented Programming)面向切面编程,是一种编程范式,是对面向对象编程(OOP)的一种完善
1.AOP将整个系统分为“核心业务逻辑”和“非核心业务逻辑”,AOP关注的就是“非核心业务逻辑”(权限、事务、安全、异常、日志等)
2.Spring将“非核心业务逻辑”封装成一个AOP组件,通过配置信息形成“核心业务和AOP组件”之间的调用关系。