IoC

依赖倒置原则:高层决定底层,底层依赖高层。高层不能依赖底层,如果底层需要修改,则都要修改。

控制反转(IOC):是依赖倒置原则的思路。

依赖注入:实现了控制反转。把底层类作为参数传入上层类,实现上层类对下层类的“控制”。setter 注入和构造函数注入。

对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。

AOP

  • 横切关注点:重复且类似的代码,如权限认证、日志、事务处理
  • 核心关注点:主要的业务。

AOP的作用在于分离系统中的各种关注点,减少系统的重复代码,降低模块间的耦合度。

// 环绕通知
@Around("pointcut()")
public Object around(ProceedingJoinPoint pjp) throws Throwable {
    Object result;
    System.out.println("---------------@Around前----------------");
    result = pjp.proceed();
    System.out.println("---------------@Around后----------------");
    return result;
}