SSM框架学习13-基于Xml的AOP开发

目录

1. 步骤

2. 开始编写

2.1 导坐标

2.2创建目标接口和目标类以及切面类

2.3配置spring配置文件

3. 切点表达式

4. 通知的类型

5. 切点表达式的抽取


1. 步骤

2. 开始编写

2.1 导坐标

<!--    使用aspectj框架aop编写-->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.9.8</version>
    </dependency>

2.2创建目标接口和目标类以及切面类

方法自定

2.3配置spring配置文件

首先我们需要创建aop命名空间,跟mvc命名空间创建方法相同,可以参考(1条消息) SSM框架学习7-SprigMVC数据响应_AAAristotle的博客-CSDN博客_ssm框架

这篇博文下mvc命名空间的创建。

然后代码如下:

--    引入目标对象-->
    <bean id="target" class="com.dzy.AOP.Target"/>

<!--    引入切面对象-->
    <bean id="Myaspect" class="com.dzy.AOP.MyAspect"/>

<!--    配置织入,告诉spring框架,哪些方法(切点)需要进行哪些增强(前置、后置...)-->
    <aop:config>
<!--        声明切面-->
        <aop:aspect ref="Myaspect">
<!--            切面=切点+通知-->
            <aop:before method="befor" pointcut="execution(public void com.dzy.AOP.Target.save())"/>
        </aop:aspect>
    </aop:config>

其中method的值可以是不同的方法名(切面类自定的),而增强方法的类型是在标签中定的:

这个类型就是前置增强,也就是在执行切点方法时先执行前置增强

pointcut就是切入点,后面的值是一个切点表达式,我们在后期通常切点表达式中代表的切入点有很多,每一个切入点都能在这得到前置增强,这样才能体现我们这种动态代理的强大 。

配置好后创建main自己跑一跑切点的方法,发现已经被加上了前置增强的效果。

3. 切点表达式

 

 最常用的切点表达式是:

execution(* com.dzy.AOP.*.*(..))

 返回值类型任意,aop包下任意类下任意方法任意参数。

4. 通知的类型

 前置后置就不展示了,这里是arround的切面方法的编写:

 joinpoint就是连接点,这里要加一个参数,环绕前环绕后通过这个proceed的生成前后来配置,总体格式可以记住上面这个格式。

异常抛出通知就是切面的方法可以在切点产生异常时执行,从而不继续执行切点方法,并且当这个切点还有其他增强方法时,在异常抛出通知生效后,后面的增强方法也一起停止。

但是最终通知不受异常抛出通知的影响,他依然会在最后执行。

5. 切点表达式的抽取

也就是当某一个切点表达式重复利用时,为了方便维护,我们可以将它抽取出来,重复引用,通过pointcut-ref来引用。 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值