zoukankan      html  css  js  c++  java
  • spring学习笔记2

    AOP中的相关概念

    Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。
    Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。
    Pointcut(切点):表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。
    Advice(增强):Advice 定义了在 Pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。
    Target(目标对象):织入 Advice 的目标对象.。
    Weaving(织入):将 Aspect 和其他对象连接起来, 并创建 Adviced object 的过程

    spring静态代理和动态代理

    jdk动态代理

    需要有顶层接口才能使用,但是在只有顶层接口的时候也可以使用,常见是mybatis的mapper文件是代理。

    使用反射完成。使用了动态生成字节码技术。

    cglib动态代理 可以直接代理类,使用字节码技术,不能对 final类进行继承。使用了动态生成字节码技术。

    spring事务的传播行为

    ①、PROPAGATION_REQUIRED :required , 必须。默认值,支持当前事务,如果没有事务。则创建一个新的事务。

    ②、PROPAGATION_SUPPORTS:supports ,支持当前事务,如果没有事务,则非事务运行。

    ③、PROPAGATION_MANDATORY:mandatory ,支持当前事务,如果没有事务则抛出异常。

    ④、PROPAGATION_REQUIRES_NEW :requires_new,如果当前有事务存在,挂起,创建一个新的事务。

    ⑤、PROPAGATION_NOT_SUPPORTED :not_supported ,非事务运行,如果当前有事务存在,挂起。

    ⑥、PROPAGATION_NEVER :never,非事务运行,如果当前有事务,则抛出异常。

    ⑦、PROPAGATION_NESTED :nested ,如果当前事务存在,嵌套一个事务。

    spring事务的隔离级别

    ①、ISOLATION_DEFAULT:使用后端数据库默认的隔离级别

    ②、ISOLATION_READ_UNCOMMITTED:最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读

    ③、ISOLATION_READ_COMMITTED:允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生

    ④、ISOLATION_REPEATABLE_READ:对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生

    ⑤、ISOLATION_SERIALIZABLE:最高的隔离级别,完全服从ACID的隔离级别,确保阻止脏读、不可重复读以及幻读,也是最慢的事务隔离级别,因为它通常是通过完全锁定事务相关的数据库表来实现的

    Spring切面可以应用五种类型的通知:

    before:前置通知,在一个方法执行前被调用。

    after: 在方法执行之后调用的通知,无论方法执行是否成功。

    after-returning: 仅当方法成功完成后执行的通知。

    after-throwing: 在方法抛出异常退出时执行的通知。

    around: 在方法执行之前和之后调用的通知。

  • 相关阅读:
    Learning Spark中文版--第三章--RDD编程(1)
    关于learning Spark中文版翻译
    dom4j 常用操作
    Invalid bound statement (not found)
    touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
    docker 运行tomcat 并部署 java web项目
    docker build no such file or directory
    Docker 笔记
    java 自动拆箱 自动装箱
    Ubuntu18 中文乱码 问题 解决
  • 原文地址:https://www.cnblogs.com/liuyakun/p/11120564.html
Copyright © 2011-2022 走看看