当前位置 : 主页 > 编程语言 > java >

Spring自学教程-AOP学习(五)

来源:互联网 收集:自由互联 发布时间:2022-10-15
Spring中的AOP 一、概述 (一)基本概念 1、什么是AOP? 面向方面编程。所谓方面即是指日志、权限、异常处理、事务处理等。 2、AOP的3个关键概念 (1)切入点(Pointcut):Pointcut是Join

Spring中的AOP

一、概述

(一)基本概念

1、什么是AOP?

    面向方面编程。所谓方面即是指日志、权限、异常处理、事务处理等。

2、AOP的3个关键概念

   (1)切入点(Pointcut):Pointcut是Join Point的集合,Join Point就是需要注入Adivce的位置,也就是需要插入日志输出代码、事务处理代码等“方面”(Aspect,也就是AOP中的A)代码的地方。

    比如我现在要写一个存钱的方法:saving()

    通常情况下我就得在这个saving()方法前后写些事务代码

    如:

logger.log(Level.INFO,”start”);
Saving();
logger.log(Level.INFO,”end”);

      

         对于事务代码而言,saving()方法的前后就都是Join Point了。在Spring中它对应config.xml中设定的方法,这个方法就是类(class)中需要进行某方面处理的方法(method)。

        (2)通知(Advice):就是指Join Point对应的代码(方法)。比如日志输出这个方面,指的就是日志输出的代码或方法了。在Spring中,它对应类(class)。

        (3)Advisor:是Poincut和Advice的配置器,它包括Pointcut和Advice,是将Advice注入程序中Pointcut位置的代码。在Sping中,它对应config.xml中的配置段<bean id=logAdvisor class=”org.springframework.aop.support.RegexpMethodPointcutAdvisor”>

二、实例讲解

首先我们先看这个例子

Spring自学教程-AOP学习(五)_2.5.3 spring

Spring自学教程-AOP学习(五)_spring_02



​​切面(可以是日志、安全性的检查、权限、事务)等工作,这些就叫做切面。。。。​​


Spring自学教程-AOP学习(五)_连接点_03



​​切面中的方法是什么呢?---切面中的方法是通知​​


Spring自学教程-AOP学习(五)_连接点_04

Spring自学教程-AOP学习(五)_日志输出_05

织入:

Spring自学教程-AOP学习(五)_2.5.3 spring_06

连接点:客户端调用那个方法,那个方法就是连接点。

Spring自学教程-AOP学习(五)_2.5.3 spring_07

aop的最本质的作用:代码块的重用。

问题来了--那如果我们有n个切面,就是开发的时候分配任务,你写你的,我写我的,最后在使用所有的切面即可,我们该怎样调用呢?

Spring自学教程-AOP学习(五)_日志输出_08

这是个最全的方法名称,实际上是来限定一个方法的

Spring自学教程-AOP学习(五)_spring_09

配置如下:

<aop:config>

<aop:aspect id="security" ref="securityHandler">

<aop:pointcut id="allAddMethod" expressinotallow="execution(* com.lsb.spring.UserManagerImpl.add*(..))"/>

<aop:before method="checkSecurity" pointcut-ref="allAddMethod" />

</aop:aspect>

</aop:config>







作者:少帅

【文章原创作者:武汉网站制作公司 http://www.wh5w.com提供,感恩】
网友评论