面向切面编程
认识Spring AOP
什么是 AOP?
面向切面编程(AOP)把业务功能分为核心、非核心两部分。
- 核心业务功能:用户登录,增加数据,删除数据
- 非核心业务功能:性能统计、日志、事务管理
非核心业务功能被定义为切面,核心业务和非核心业务分开独立开发,到那时切面功能与核心业务“编织在一起”,这就是 AOP 的定义。
AOP 的好处是将那些与核心业务无关的代码所共同调用的逻辑代码封装起来,以便减少系统的重复代码,降低模块之间的耦合程度,有利于未来的拓展和维护。
AOP中的概念
- 切入点(pointcut):在哪些类,哪些方法上切入
- 通知(advice):在方法前,方法后,方法前后做什么
- 切面(aspect):切面=切入点+通知,即在什么时机、什么地方、做什么
- 织入(weaving):把切面加入对象,并创建出代理对象的过程
- 环绕通知:AOP 中最强大、灵活的通知,它集成了前置和后置通知,保留了连接点原有的方法。