SpringAop_2通知(新手)和无法找到元素 'aop:aspectj-autoproxy' 的声明

AspectJ:java社区里最完善最流行的AOP框架

  • 在spring2.0以上的版本中,可以使用基于AspectJ注解或基于XML配置的AOP,其实Spring本身提供了aop框架,但是AspectJ更方便.

在Spring中启用AspectJ注解支持

  • 使用条件:
    1.要在Spring中使用AspectJ注解,必须在classapth下包含AspectJ类库(aopalliance.jar,aspectj.weaver.jar,spring-aspects.jar)
    2.将aopSchema添加上到根元素中。
    3.要在SpringIOC容器中启用AspectJ注解支持,只要在Bean配置文件定义一个空的xmL元素aop:aspectjautoproxy
    4.当SpringIOC容器侦测到Bean配置文件中的aop:aspectjautoproxy元素时,会自动为与AspectJ切面匹配的Bean创建处理

  • 步骤:
    1.添加@Component(只要是可以被context:component-scan扫描到的组件注释即可),因为切面(上一篇笔记记载过)说白了也是需要被加入到IOC容器的类,所以要加入进去,再添加@aspect这个注释加上表示这个类是一个切面.

    2.然后在需要的方法上添加注释@before或@after(后置通知即使是方法异常也会继续执行,但不能访问目标方法执行的结果)
    例图如下:
    在这里插入图片描述

  • 如果你想要的访问被代理方法的参数或者参数值等:可以用JoinPoint类这个类提供可以访问的方法

  • 稍微讲一下原理(视频里的搬运):当指定方法beforeMethod()执行的时候,他会检测before注解里的内容标记的方法,会自动为这个方法的类生成代理对象,在调用这个方法执行之前,将beforeMethod()这个方法加入到在代理对象之前.

  • 注意:before的参数可以是:
    *在这里插入图片描述
    3.然后在bean添加(这里我遇到了一个问题,就是无法找到元素 ‘aop:aspectj-autoproxy’ 的声明):在这里插入图片描述
    解决问题的方法就是:我的xml文件中配置错误,他是自己注入的aop的命名空间,但是问题出在哪里我也不知道,然后百度呗,这样就好了

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd
                            http://www.springframework.org/schema/aop
                            http://www.springframework.org/schema/aop/spring-aop-4.3.xsd


">

解决的问题的出处在这里:https://blog.csdn.net/u010004317/article/details/47700447?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

其他通知:

  1. 返回通知:在这里插入图片描述

result可以返回方法的返回值

  1. 异常通知在这里插入图片描述
ex可以指定特定的异常

3.环绕通知 :在这里插入图片描述通知的执行顺序:
在这里插入图片描述

Spring基于xml方式配置AOP在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值