IOC:控制反转,利用反转的机制将对象交给spring容器,由spring负责对象的创建和销毁。
IOC的作用:解耦
AOP:面向切面编程
AOP的作用:在程序运行期间,不修改源码的情况下,动态统一添加功能。如:日志打印,数据采集,事务管理,性能监视
AOP常见概念:横切关注点,切面,连接点,切入点,消息通知
- 横切关注点:拦截后怎么处理
- 切面aspect:一个类,里面定义 切入点和通知。
- 连接点JointPoint:源码里可以切入的位置。
- 切入点 Pointcut:源码里准备切入的位置。
- 消息通知:在切入位置执行增强处理。如:记录日志,控制事务 。
- 类型
- @Before前置通知
- 在执行目标方法之前运行
- @After后置通知
- 在目标方法运行结束之后
- @AfterReturning返回通知
- 在目标方法正常返回值后运行
- @AfterThrowing异常通知
- 在目标方法出现异常后运行
- @Around环绕通知
- 在目标方法完成前、后做增强处理 ,环绕通知是最重要的通知类型 ,像事务,日志等都是环绕通知,注意编程中核心是一个ProceedingJoinPoint,需要手动执行 joinPoint.procced()
- @Before前置通知
- 类型