Spring学习总结二——Spring_AOP

一、什么是AOP?

 

  1. AOP:面向切面编程,采用的是横向抽取机制,将分散在各分方法上的重复代码提取出来,然后再程序编译或者是运行时,再将这些提取出来的代码应用到需要执行的方法。
  2. AOP的本质是代理。对方法进行增强
  3. JDK动态代理 --> 基于接口
  4. CGLIB代理  --> 基于子类

二、Spring AOP面向切面编程

            execution(返回类型 包路径.方法  )

           * 代表任意类型,或是类上的所有

          ..代表任意多个参数。 如果用在包路径上 指:当前包和子包下的所有

          execution(* com.szy..*.*(..) : com.szy包下的所有类,不包括包下的。

  1. Advice通知:aop在切点上执行的增强处理。
  2. Pointcut切点:对哪些类、哪些方法进行增强。
  3. Aspect切面:通常是一个类,里面定义了通知和切点。   aop = 通知 + 切点
  4. 五种通知的类型
    1. 前通知:方法执行之前发出的通知
    2. 后通知:方法执行之后发出的通知,又称最终通知,无论如何都会执行
    3. 返回后通知:成功返回后的通知,只有正常返回才会执行
    4. 异常通知:发生异常后的通知(适合做事务),只有异常抛出的时候执行
    5. 环绕通知:在方法的执行前后进行一些增强,在方法执行前后进行一些通知  = 前通知+后通知
  5. PointCut切点
    1. JDK**PointCut  基于正则表达式的切点
    2. AspectJExpressionPointCut  基于aop的切点表达式

三、使用AspectJ开发

  1. 基于XML配置文件方式
  2. 基于注解的AspectJ开发

四、SpringMybatis整合思想

  1. mybatis:持久层框架
  2. spring:容器,管理类的。
    1. 可以管理会话工厂,会话工厂的特点是:一旦创建一直存在。最好设计为单例的。而spring正好设计为scope为单例模式。
    2. 可以管理mapper

五、spring的事务管理

  1. xml配置文件方式
  2. 注解事务

              <tx:annotation-driven transaction-manager="transactionManager"/> 

    1. <!-- 开启注解 -->
    2. @Transactional 
      1. 可以注解到方法上,表示当前方法进行事务管理
      2. 可以注解到类上,表示当前类的所有方法都进行事务管理

      注意:1spring的事务管理,一定要对进行事务管理的地方往外抛异常,而不能try…catch..捕捉异常

               2、如果想主动对事务进行回滚,可以往外抛异常throw new RuntimeException( );

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值