Spring框架知识点

spring框架背的知识点:

 1、动态代理和静态代理异同***

    (1)角色相同——真实角色、代理角色相同
    (2)动态代理类是动态生成的
    (3)动态代理:
(a)基于接口的动态代理——JDK
            (b)基于类的动态代理——cglib
            (c)基于Spring、mybatis中的JAVAssist来生成动态代理

2、Advice类型***

  • 前置通知(Before advice):在某连接点(JoinPoint)之前执行的通知,但这个通知不能阻止连接点前的执行。ApplicationContext中在<aop:aspect>里面使用<aop:before>元素进行声明。例如,TestAspect中的doBefore方法。    
  • 后置通知(After advice):当某连接点退出的时候执行的通知(不论是正常返回还是异常退出);ApplicationContext中在<aop:aspect>里面使用<aop:after>元素进行声明。例如,ServiceAspect中的returnAfter方法,所以Teser中调用UserService.delete抛出异常时,returnAfter方法仍然执行。
  • 返回后通知(After return advice):在某连接点正常完成后执行的通知,不包括抛出异常的情况。ApplicationContext中在<aop:aspect>里面使用<after-returning>元素进行声明。
  • 环绕通知(Around advice):包围一个连接点的通知,类似Web中Servlet规范中的Filter的doFilter方法。可以在方法的调用前后完成自定义的行为,也可以选择不执行。ApplicationContext中在<aop:aspect>里面使用<aop:around>元素进行声明。例如,ServiceAspect中的around方法。
  • 抛出异常后通知(After throwing advice):在方法抛出异常退出时执行的通知。ApplicationContext中在<aop:aspect>里面使用<aop:after-throwing>元素进行声明。例如,ServiceAspect中的returnThrow方法。

3、事务的四大特性(ACID)***

atomicity:[ˌætəˈmɪsəti](原子性)

  • 表示一个事务内的所有操作是一个整体,要么全部成功,要么全部失败

consistency: [kənˈsɪstənsi](一致性)

  • 表示一个事务内有一个操作失败时,所有的更改过的数据都必须回滚到修改前的状态

isolation: [ˌaɪsəˈleɪʃn](隔离性)

  • 事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它后的状态,事务不会查看中间状态的数据

   事务隔离级别

 读取未提交(Read Uncommitted)
    读取已提交(Read Committed)
    可重复读(Repeatable Read)
    序列化(serializable)

durability: [ˌdjʊərəˈbɪlɪti](持久性)

  • 持久性事务完成之后,它对于系统的影响是永久性的

 

 

 

posted @ 2021-09-08 19:14  宠溺ll  阅读(70)  评论(0)    收藏  举报