面向对象与面向切面

面向对象编程(OOP)

是一种编程思想,三大特性就是封装继承和多态,封装是将类的属性给私有化,不让外部直接访问,通过setter和getter方法实现外部访问,提高了程序的安全性;程序的扩展性可重用性表现在继承和多态上,子类可以继承父类的方法来实现操作,多态实现父类调用子类的实现方法。这样增强了程序的可维护性


面向切面编程(AOP)

是一种编程范式【思想】,与业务无关,描述的是横切点,提供从另外一个角度来考虑程序结构,将系统的公共功能集中解决,实现解耦;用来完善面向对象编程。


配置AOP

1、引入相关jar包

2、引入Spring的配置文件(有两处aop的内容)

面向对象与面向切面_第1张图片

3、注入MyBefore和MyImpl

面向对象与面向切面_第2张图片


AOP相关概念
关注点[joinpoint]
通知[Advice]
切面[Aspect]
切入点[Pointcut]
目标对象[Target]
AOP代理
织入[Weaving]:生成代理的过程



AOP的通知类型
before 前置通知
afterThrowing         抛出异常后通知
afterReturn 返回后通知
after 后通知
around 环绕通知


execution切入点表达式

*  匹配任何数量的字符
..  任意数量子包和任意参数
+ 指定类型的子类型,作为后缀放在类型模式后

*
1、表示任意类和包名
2、表示任意方法名
3、表示任意一个类型的参数
..
1、表示任意数量的子包

2、表示任意数量和任意类型的参数


// 表示com.aop的 任意包下的 任意类任意方法任意参数
execution(* com.aop.*.*.*(*))

// 表示任意 多个子包任意类任意方法任意参数
execution(* com..*.*(*))


你可能感兴趣的:(AOP,execution,SpringAOP)