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](持久性)
- 持久性事务完成之后,它对于系统的影响是永久性的

浙公网安备 33010602011771号