IoC和AOP

IoC和AOP

1、IoC

  • 什么是IoC:控制反转(Inversion of Control),又称为依赖注入(Dependency Injection),把建立对象的控制权交出去,从主动建立对象变为被动接受对象。具体的说就是,在传统的程序设计中,若是在web层要调用service层的方法,就必须在web层主动建立service层实现类对象,可是在spring中,建立对象的工做再也不由调用者主动完成,而是把建立对象的控制权交给spring的bean工厂, 调用者只负责接收这个对象。web

  • IoC的做用:实现解耦,更准确的说是实现了编译期解耦,还存在运行期解耦。实现运行期解耦能够引入配置文件对依赖对象的路径进行配置。正则表达式

2、AOP

  • 什么是AOP:面向切面编程(Aspect-Oriented Programming),把指定的逻辑代码动态的切入到指定的位置上的编程思想。例如,在项目中有200个方法须要进行事务管理,或者200个方法须要日志打印,若是传统的方法,咱们可能要在这200个方法上分别加入对应的逻辑代码,而若是须要调整那就要再修改200次,过于繁琐。而若是利用AOP的思想,那就只须要把这些相同的代码剥离出来,放到同一个类中进行集中管理。在运行时由spring容器动态切入这些代码。
  • AOP的原理:经过动态代理的方式,在不影响原有功能的基础上,对功能进行加强、控制
  • 常见的名词
    • 切入点(PointCut):全部可以进行加强的方法,全部的切入点都会获得通知,不一样的切入点获得的通知不一样(根据正则表达式实现)
    • 通知(Advice):要给目标对象进行加强、控制的逻辑代码
    • 切面(Aspect):切入点和通知的结合/共有功能的实现/被加强了的切入点方法
相关文章
相关标签/搜索