Spring之AOP(一)

1、定义:

       AOP(Aspect Oriented Programming)面向切面编程:基于OOP基础之上的新的编程思想,是指在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的编程方式。

2、开发步骤:

导包

  • spring-beans-4.0.0.RELEASE.jar
  • spring-aop-4.0.0.RELEASE.jar
  • spring-context-4.0.0.RELEASE.jar
  • spring-core-4.0.0.RELEASE.jar
  • spring-expression-4.0.0.RELEASE.jar
  • commons-logging-1.1.3.jar
  • spring-aspects-4.0.0.RELEASE.jar

写配置

1、将目标类和切面类(封装了通知方法(在目标方法执行前后执行的方法))通过@Component加入到ioc容器中;

2、通过加@Aspect注解告诉Spring哪个是切面类;

3、通过加注解的方式告诉Spring切面类中的每一个方法是什么时候运行;

  • @Before:在目标方法运行之前执行,称为前置通知;
  • @After:在目标方法运行结束之后执行,称为后置通知;
  • @AfterReturning:在目标方法正常返回之后执行,称为返回通知;
  • @AfterThrowing:在目标方法抛出异常之后执行,称为异常通知;
  • @Around:环绕,称为环绕通知。 

注:此时并不知道具体是哪个方法,需要在注解内部加入切入点表达式execution(访问权限符  返回值类型  方法全类名),例如:@Before("public int execution(方法的全类名)")。

4、需要在配置文件中加入<aop:aspectj-autoproxy></aop:aspectj-autoproxy>来开启基于注解的AOP模式。

测试

从ioc容器中拿到目标对象,一定要用它的接口类型,不要用本类。AOP的底层就是动态代理,容器中保存的组件是它的代理对象,不是本类的类型。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值