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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://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

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

  1. Selenium Web 自动化 - 如何找到元素

    Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp ...

  2. Spring通知类型及使用ProxyFactoryBean创建AOP代理

    Spring 通知类型 通知(Advice)其实就是对目标切入点进行增强的内容,Spring AOP 为通知(Advice)提供了 org.aopalliance.aop.Advice 接口. Spr ...

  3. “通配符的匹配很全面, 但无法找到元素 ‘utillist‘ 的声明”的问题

    "通配符的匹配很全面, 但无法找到元素 'util:list' 的声明"的问题 报错: Exception in thread "main" org.sprin ...

  4. 通配符的匹配很全面, 但无法找到元素 'tx:annotation-driven' 的声明

    启动Tomcat时报错,通配符的匹配很全面, 但无法找到元素 'tx:annotation-driven' 的声明,报错如下 1.从报错可以看到找不到元素   tx:annotation-driven ...

  5. 匹配的通配符很全面,但无法找到元素mvc:annotation-driven的声明

    目录 前言 1. 错误重现 2. 解决问题 3. 一些思考 前言   本篇文章的来源是遇到的一个奇葩的问题,springmvc 部署之后,出现"匹配的通配符很全面,但无法找到元素 mvc:a ...

  6. Spring配置文件报错 :通配符的匹配很全面, 但无法找到元素 ‘context:property-placeholder‘ 的声明

    在Spring导入连接数据库的配置文件的时候,使用idea创建配置文件有时候会报XmlBeanDefinitionStoreException异常. <?xml version="1. ...

  7. vc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 ‘context:property-placeholder‘ 的声明。

    org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 6 in XML document from c ...

  8. SpringMVC:通配符的匹配很全面, 但无法找到元素 ‘context:component-scan‘ 的声明

    问题描述 配置servlet.xml配置文件时,出现通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明报错. <?xml version=" ...

  9. Spring AOP AspectJ 代码实例

    本文参考来源 http://examples.javacodegeeks.com/enterprise-java/spring/aop/spring-aop-aspectj-example/ http ...

  10. Spring3系列12-Spring AOP AspectJ

    本文讲述使用AspectJ框架实现Spring AOP. 再重复一下Spring AOP中的三个概念, Advice:向程序内部注入的代码. Pointcut:注入Advice的位置,切入点,一般为某 ...

最新文章

  1. 参观 Google 总部是一种什么体验?
  2. java switch 应用
  3. poj1330|bzoj3732|noip2013 货车运输 kruskal+倍增lca
  4. CentOS6 kvm添加网卡桥接口脚本
  5. Java学习day2
  6. install python-pip_yum install python-pip:没有包python-pip可用
  7. php7协程通信使用,PHP7下的协程实现
  8. python异步IO
  9. mac 终端登陆linux,Mac终端自动登录服务器
  10. OpenCV 4.0 rc版本发布,扩展计算图Graph API
  11. Angular6入门
  12. 谁说漂亮女程序猿就不能拿大厂Offer了?
  13. 如何快速定位 Redis 热 key
  14. Excel从数据中挑出几个数值使其和为某一固定值
  15. 《悲伤逆流成河》影评
  16. 总结27 -- E45: ‘readonly‘ option is set (add ! to override)
  17. 批量添加AD账号(一)
  18. 一个黑科技,Python竟然可以伪造很多'假'的数据!
  19. 3D游戏建模需要学会哪些软件?想入行游戏建模的你都学习了吗?
  20. ztree插件树状图

热门文章

  1. 华为普工一个月的工资是多少?
  2. Excel入门之快速录入数据
  3. 短视频SDK技术选型
  4. 【笔记】用函数实现折半查找
  5. 鹅厂开源框架tars之基础组件
  6. SLAM_视觉SLAM面试题及答案汇总
  7. 原来《羊了个羊》也求助了云,拦截bot自动化攻击达5000万次 | CCF C³
  8. 数据库SQL Server 2017下载及安装
  9. 在阿里云上搭建自己的虚拟机(学习笔记)
  10. 企业邮箱出现问题我们该联系谁?联系邮箱是什么?