SpringAOP注解应用

Aspect Oriental Program 面向切面编程 

在我参考一些资料后,有一个解释,在我看来是最直观且容易理解的:

在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。 

所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务;所谓的周边功能,比如性能统计,日志,事务管理等等 

周边功能在Spring的变相切面编程AOP思想里,即被定义为切面。在面向切面编程AOP的思想里面,核心业务功能和切面功能分别独立进行开发然后把切面功能和核心业务功能 "编织" 在一起,这就叫AOP。

这篇文章只是简单的对AOP注解的总结。

@Before 前置切入

@After 后置切入

@Around(环绕切入)

@AfterReturning (后置返回切入)

@AfterThrowing (后置异常切入)

下面的例子中baby是个类,包含有eatLunch,eatbreakfast,eatSupper,drink方法

1.

@Before("execution(* baby.*(..))")
		//匹配baby类所有方法
		public void beforEat(){
			System.out.println("-------------前置切入,吃饭前洗手-----------");
		}

2.

@After("execution(* eatLunch(..))")
		//匹配eatLunch方法
		public void afterEat(){
			System.out.println("-------------后置切入,吃完午饭要午睡-----------");
		}

3.

@Around("execution (* eatSupper(..))")
		//匹配eatSupper方法
		public Object aroudEat(ProceedingJoinPoint pjp) throws Throwable{
			System.out.println("-------------环绕切入,吃晚饭前play-----------");
			Object baby = pjp.proceed();
			System.out.println("-------------环绕切入,吃完晚饭sleep-----------");
			return baby;
		}

4.

@AfterReturning(returning="drink",pointcut=("execution (* drink(..))"))
		public void lod(Object drink){
			System.out.println("-------------这是AfterReturning增强-----------");
			System.out.println("baby每天喝的饮料"+drink);
			System.out.println("记录每天喝的容量");
		}

异常返回切入并没有使用,所以就没写,所有的切入param(参数),都会在execution后,第一个*后是有空格的,若后面跟方法体就像这样* drink(..),若后面跟类就像* baby.*

这篇文章只是对AOP粗略的理解,文章有参考http://blog.csdn.net/evankaka

Learning by Doing

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值