Spring AOP面向切面编程(一)
1. AOP:面向切面编程 (Aspect Oriented Programming)
不需要修改原有程序代码
1. 高扩展性
2. 原有功能相当于释放了部分逻辑.让职责更加明确.
2.面向切面编程是什么?
在程序原有纵向执行流程中,针对某一个或某一些方法添加通知,形成横切面过程就叫做面向切面编程.
3.常用概念
- 切面: 前置+切点+后置的整体小模块
- 切点:原有功能: pointcut
- 前置通知: 在切点之前执行的功能. before advice
- 后置通知: 在切点之后执行的功能,after advice
- 异常通知:如果切点执行过程中出现异常,会触发异常通知.throws advice
- 织入: 把切面嵌入到原有功能的过程叫做织入.形成切面的过程
4.spring提供了2种AOP实现方式(详细见下一篇博客)
问题1: 系统升级:就是在保留原有功能的基础上添加新的功能。 必须去修改源码然后重新部署项目。 问题2: 进行功能开发时,发现功能的实现会依赖其他的代码,这样就需要将所有的代码封装到方法中 造成方法的职责不明确,甚至代码出现冗余,以及不好升级。 |
实现:Spring AOP
使用:
1. Schema-based
1.1 每个通知都需要实现接口或类
1.2 配置spring配置文件时在<aop:config>配置
2. AspectJ
2.1 每个通知不需要实现接口或类
2.2 配置spring配置文件是在<aop:config>的子标签<aop:aspect>中配置
木子璇总结时刻:欢迎小伙伴们提出建议哦,如有错误,望大神指出哦,谢谢啦。