b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

深入理解spring的AOP机制原理

电脑杂谈  发布时间:2019-05-01 08:26:03  来源:网络整理

spring aop 原理_spring aop原理_spring aop 原理

spring aop 原理

术语定义

通知:切面有必须要完成的工作,在AOP中,切面的工作被称为通知。通知定义了切面是什么以及何时使用,除了描述切面要完成的工作,通知还解决了何时执行这个工作的问题,它应该在某个方法之前?之后?之前和之后都调用?还是只在方法抛出异常时调用?

连接点代表应用程序中插入aop切面的地点。它实际上是spring aop框架在应用程序中执行动作的地点。在spring aop中,一个连接点总是代表一个方法的执行。

(6)定义一个类company,在该类中写一个方法print(employee e),调用该方法可以打印出某个员工的工资数额以及该员工的身份类型,写一个测试类companytest在main方法,把若干各种类型的员工放在一个employee 数组里,并调用print方法输出数组中每个员工当月的工资。b. 切点(pointcut):如果连接点相当于数据中的记录,那么切点相当于查询条件,一个切点可以匹配多个连接点。切点pointcut:表达式匹配通知所要织入的一个或多个连接点,是aop的核心,spring在默认情况下使用aspectj切点表达式语言。

切面:切面就是通知和切点的结合。

织入:织入是把切面应用到目标对象并创建新的代理对象的过程,切面在指定的连接点被织入到目标对象中。在目标对象的生命周期里有多个点可以进行织入:编译期、类加载期、运行期。其中编译器织入需要特殊的编译器,类加载器织入需要特殊的类加载器,spring的AOP 是在运行期织入通知的。

Spring的AOP支持

spring aop 原理_spring aop 原理_spring aop原理

spring提供了AOP的四种支持,分别是:基于代理的经典Spring AOP模式;纯POJO切面;@AspectJ注解驱动的切面;@注入式AspectJ切面。spring所创建的通知都是用标准的Java类编写的,而且定义通知所应用的切点通常会使用注解或在Spring配置文件里采用XML来编写。

spring只支持方法级别的连接点。

在spring AOP中,要使用AspectJ的切点表达式语言来定义切点,关于Spring AOP的AspectJ切点,最重要的一点就是Spring仅支持AspectJ切点指示器的一个子集:

1.arg() 限制连接点匹配参数为指定类型的执行方法;

2.@args() 限制连接点匹配参数由指定注解标注的执行方法;

3.execution() 用于匹配是连接点的执行方法;

4.this() 限制连接点匹配AOP代理的bean引用为指定类型的类

spring aop 原理_spring aop原理_spring aop 原理

5.target 限制连接点匹配目标对象为指定类型的类

6.@target() 限制连接点匹配特定的执行对象,这些对象对应的类要具有指定类型的注解

7.within() 限制连接点匹配指定的类型

8.@within() 限制连接点匹配特定注解所标注的类型

9.@annotation 限定匹配带有指定注解的连接点

spring 注解创建切面

目标对象:

spring aop原理_spring aop 原理_spring aop 原理

切面对象:

spring2.0以后新增了对aspectj切点表达式支持,@aspectj 是aspectj1.5新增功能,通过jdk5注解技术,允许直接在bean类中定义切面。pointcut属性的值是使用aspectj切点表达式语法所定义的切点。切点pointcut:表达式匹配通知所要织入的一个或多个连接点,是aop的核心,spring在默认情况下使用aspectj切点表达式语言。

接下来需要在配置文件中配置切面如下所示:

表示启动切面代理

环绕通知:

处理通知中的参数

xml中声明切面

spring aop 原理_spring aop原理_spring aop 原理

spring AOP提供的xml配置元素:

1.<aop:advisor> 定义AOP通知;

2.<aop:after> 后置通知;

3.<aop:after-returning> 返回通知

4.<aop:around> 环绕通知

5.<aop:aspect> 定义一个切面

6.<aop:aspectj-autoproxy> 启用切面注解驱动

7.<aop:before> 前置通知

8.<aop:config> 顶层的AOP配置元素;

9.<aop:pointcut>:定义个切点


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-95410-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 魏磊
        魏磊

        要是美帝能保证伊国领土不被伊凡份子攻占

      • 张云雷
        张云雷

        坐等上映

      • 大愚
        大愚

        那么物价上涨减去利率

      热点图片
      拼命载入中...