面向对象编程(OOP)
是一种编程思想,三大特性就是封装继承和多态,封装是将类的属性给私有化,不让外部直接访问,通过setter和getter方法实现外部访问,提高了程序的安全性;程序的扩展性和可重用性表现在继承和多态上,子类可以继承父类的方法来实现操作,多态实现父类调用子类的实现方法。这样增强了程序的可维护性。
面向切面编程(AOP)
是一种编程范式【思想】,与业务无关,描述的是横切点,提供从另外一个角度来考虑程序结构,将系统的公共功能集中解决,实现解耦;用来完善面向对象编程。
配置AOP
1、引入相关jar包
2、引入Spring的配置文件(有两处aop的内容)
3、注入MyBefore和MyImpl
AOP相关概念
关注点[joinpoint]
通知[Advice]
切面[Aspect]
切入点[Pointcut]
目标对象[Target]
AOP代理
织入[Weaving]:生成代理的过程
AOP的通知类型
before 前置通知
afterThrowing 抛出异常后通知
afterReturn 返回后通知
after 后通知
around 环绕通知
execution切入点表达式
* 匹配任何数量的字符.. 任意数量子包和任意参数
+ 指定类型的子类型,作为后缀放在类型模式后
*
1、表示任意类和包名
2、表示任意方法名
3、表示任意一个类型的参数
..
1、表示任意数量的子包
2、表示任意数量和任意类型的参数
execution(* com.aop.*.*.*(*))
// 表示任意 多个子包的 任意类、 任意方法的 任意参数
execution(* com..*.*(*))