请选择 进入手机版 | 继续访问电脑版

springAOP原理一

发表于 09-14 14:46 显示全部楼层 15 145

SpringAOP是什么?
AOP(Aspect Oriented Programming面向切面编程),通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。
这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
SpringAOP应用在哪些地方?
日志记录,性能统计,安全控制,事务处理,异常处理等。
SpringAOP术语?
切面(Aspect):切面是一个关注点的模块化,这个关注点可能是横切多个对象;
连接点(Join Point):连接点是指在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候;
通知(Advice):在切面的某个特定的连接点上执行的动作。
五种通知:
  • 前置通知(Before):在目标方法或者连接点被调用前执行的通知;

  • 后置通知(After):在某个连接点完成后执行的通知;

  • 返回通知(After-returning):在某个连接点执行之后执行的通知;

  • 异常通知(After-throwing):指在方法抛出异常后执行的通知;

  • 环绕通知(Around):指包围一个连接点通知,在被通知的方法调用之前和之后执行自定义的方法;

切点(PointCut):指匹配连接点的断言。通知与一个切入点表达式关联,并在满足这个切入的连接点上运行,例如:当执行某个特定的名称的方法。
引入(Introduction):引入也被称为内部类型声明,声明额外的方法或者某个类型的字段。
目标对象(Target Object):目标对象是被一个或者多个切面所通知的对象。
AOP代理(AOP Proxy):AOP代理是指AOP框架创建的对象,用来实现切面契约(包括通知方法等功能)
织入(Wearving):指把切面连接到其他应用处程序类型或者对象上,并创建一个被通知的对象,或者说形成代理对象的方法的过程。
@Aspect
Public class Audience{//切面
@Before("exucution(* com.swj.honeycomb.service.TestService.helloword(..))")//切入点表达式
public void firstBefore(){//通知
System.out.println("第一个前置");
}
@After("exucution(* com.swj.honeycomb.service.TestService.helloword(..))")
public void firstAfter(){
System.out.printlin("第一个后置");
}
}
@Service
Public class TestService{
public void helloword(){//调用点即为连接点
System.out.println("Hello word !");
}
}

切入点表达式

springAOP-cutPoint.png


回复 使用道具
举报
NeoCheung

发表于 10-18 16:22 显示全部楼层

支持!支持!!

回复 支持 反对 使用道具
举报
我不是悟空

发表于 10-15 18:20 显示全部楼层

回复 支持 反对 使用道具
举报
哥哥在哪儿

发表于 10-15 16:28 显示全部楼层

回复 支持 反对 使用道具
举报
高分中二病

发表于 10-12 10:49 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对 使用道具
举报
东北兰蔻

发表于 10-09 07:28 显示全部楼层

回复 支持 反对 使用道具
举报
青果杰杰

发表于 10-07 00:32 显示全部楼层

支持!支持!!

回复 支持 反对 使用道具
举报
翠钰芳

发表于 09-26 13:27 显示全部楼层

楼主万岁,万万岁,哈哈哈哈,谢谢了 商业源码:www.kubuku.net
回复 支持 反对 使用道具
举报

回复 支持 反对 使用道具
举报
随手拾起

发表于 09-21 12:46 显示全部楼层

回复 支持 反对 使用道具
举报
12下一页

发表新文章
青埂峰峰主

小码哥会员

0

学分

224

学币

404

积分

小码哥会员

Rank: 3Rank: 3

积分
404

关注新浪微博关注小码哥教育公众号活动达人勋章

Ta的主页 发消息
精华帖排行榜

精彩推荐

  • 关注小码哥教育