Spring学习(三)

一、Spring的AOP的基于AspectJ的XML的开发

概述:IoC的目标是为了管理Bean ,而Bean是java面向对象(OOP)的基础设置。

1、AOP的概述

  AOP:面向切面编程,是OOP的扩展和延伸,是用来解决OOP遇到问题。常用于数据库事务的编程,我们在做完第一步数据库数据更新后,不知道下一步是否成功,如果下一步失败,就使用数据库事务的回滚功能去回滚事务,使得第一步的数据跟新也作废。

  怎么知道失败:以异常作为消息,如果接到了异常信息,就回滚,从而保证了数据的一致性

 所以Spring的事务管理中只要让它接收到异常信息,他就回滚,而不用通过代码去实现。屏蔽也数据库代码。

2、Spring的AOP底层的实现(自动调用)

    JDK的动态代理:有接口的

    Cglib的动态代理

3、AOP的相关术语

  连接点:可以被拦截的点。

  切入点:真正被拦截的点

  通知:增强方法

  引介:类的增强

  目标:被增强的对象

  织入:将增强应用到目标的过程。

  代理:织入增强后产生的对象

  切面:切入点和通知的组合

3、AOP的入门开发

  引入jar包

  编写目标类并配置

       

  编写切面类并配置

        

  进行aop的配置

    

  <!-- 定义目标对象:把目标对象交给Spring管理 -->
  <bean id="userDao" class="com.dongtian.UserDao.UserDao" />
  <!-- 定义aspect类 -->
  <bean id="myAspect" class="com.dongtian.UserService.MyAspect"/>  

  <!-- 例如要增强save( )-->

  <aop:config>
    <aop:pointcut expression="execution(* com.dongtian.UserDao.UserDao.save(..))"  id="pointcut1"/>
    <aop:aspect ref="myAspect">
      <aop:before method="before" pointcut-ref="pointcut1"/>
    </aop:aspect>
  </aop:config>

  通知类型(aop: xxx)

    前置通知 :  before

    后置通知 :    afterReturning   

    环绕通知:  around

    异常抛出通知  :afterThrowing

    最终通知:     after

切入点表达式写法 execution(访问权限 返回值 包名.类名.法名(参数))

二、Spring的AOP的基于AspectJ注解开发

1、配置

2、目标类

  

          

    

原文地址:https://www.cnblogs.com/dongtian-blogs/p/10597676.html