一步一步深入spring(6)--使用基于XML配置的spring实现的AOP
上节我们提到了使用基于注解实现的AOP,这节我们将用基于xml配置的方式来实现的AOP。
1.首先建立一个类,作为切面类,这个类主要用来实现注解中各种通知要实现的方法。
1 package com.yangyang.aop; 2 3 import org.aspectj.lang.ProceedingJoinPoint; 4 /** 5 * 切面类 6 * @author Administer 7 * 8 */ 9 public class MyInterceptorForXml { 10 //前置通知 11 public void doAccessCheck(){ 12 System.out.println("前置通知"); 13 } 14 15 //后置通知 16 public void doAfterReturning(){ 17 System.out.println("后置通知:"); 18 } 19 20 //例外通知 21 public void doAfterThrowing(){ 22 System.out.println("例外通知"); 23 } 24 25 //最终通知 26 public void doAfter(){ 27 System.out.println("最终通知"); 28 } 29 30 //环绕通知(特别适合做权限系统) 31 public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable{ 32 System.out.println("环绕通知进入方法"); 33 Object object=pjp.proceed(); 34 System.out.println("环绕通知退出方法"); 35 return object; 36 } 37 }
2.在spring的配置文件中配置aop的相关操作:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:aop="http://www.springframework.org/schema/aop" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 7 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd 8 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> 9 <!-- 加上aop的命名空间以及DTD验证 --> 10 11 <bean id="myInterceptorForXml" class="com.yangyang.aop.MyInterceptorForXml"></bean> 12 <aop:config> 13 <aop:aspect id="aspect" ref="myInterceptorForXml"><!-- 定义一个切面 --> 14 <!-- 配置切入点 --> 15 <aop:pointcut id="mycut" expression="execution (* com.yangyang.service..*.*(..))"/> 16 <aop:before pointcut-ref="mycut" method="doAccessCheck"/> 17 <aop:after-returning pointcut-ref="mycut" method="doAfterReturning"/> 18 <aop:after-throwing pointcut-ref="mycut" method="doAfterThrowing"/> 19 <aop:after pointcut-ref="mycut" method="doAfter"/> 20 <aop:around pointcut-ref="mycut" method="doBasicProfiling"/> 21 </aop:aspect> 22 </aop:config> 23 24 <bean id="personService" class="com.yangyang.service.impl.PersonServiceImpl"> 25 </bean> 26 27 </beans>
特别要提到的是此处
<aop:pointcut id="mycut" expression="execution (* com.yangyang.service..*.*(..))"/> 中的execution 的表达式中* 与com.yangyang....之间要有一个空格。 3.同理进行单元测试,得到与之前相同的结果,这样基于XML配置耳朵AOP也就实现了
转载于:https://www.cnblogs.com/shunyang/p/3302122.html
一步一步深入spring(6)--使用基于XML配置的spring实现的AOP相关推荐
- Spring MVC之基于xml配置的web应用构建
2019独角兽企业重金招聘Python工程师标准>>> 更多spring博文参考: http://spring.hhui.top/ 直接用SpringBoot构建web应用可以说非常 ...
- 基于XML配置的Spring MVC(所需jar包,web.xml配置,处理器配置,视图解析器配置)
1.添加jar 2.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app ver ...
- spring整合mybatis基于xml配置
数据库 /* Navicat MySQL Data Transfer Source Server : mysql Source Server Version : 50549 Sourc ...
- webconfig.java_基于JavaConfig配置的Spring MVC的构建
上一篇讲了基于XML配置的构建,这一篇讲一讲基于JavaConfig的构建.为什么要写这篇文章,因为基于xml配置的构建,本人认为很麻烦,要写一堆的配置,不够简洁,而基于JavacConfig配置的构 ...
- spring实战六之使用基于java配置的Spring
之前接触的都是基于XML配置的Spring,Spring3.0开始可以几乎不使用XML而使用纯粹的java代码来配置Spring应用.使用基于java配置的Spring的步骤如下: 1. 创建基于ja ...
- 基于JavaConfig配置的Spring MVC的构建
上一篇讲了基于XML配置的构建,这一篇讲一讲基于JavaConfig的构建.为什么要写这篇文章,因为基于xml配置的构建,本人认为很麻烦,要写一堆的配置,不够简洁,而基于JavacConfig配置的构 ...
- Spring实战——无需一行xml配置实现自动化注入
已经想不起来上一次买技术相关的书是什么时候了,一直以来都习惯性的下载一份电子档看看.显然,如果不是基于强烈的需求或强大的动力鞭策下,大部分的书籍也都只是蜻蜓点水,浮光掠影. 就像有位同事说的一样,有些 ...
- Spring装配Bean---使用xml配置
声明Bean Spring配置文件的根元素是<beans>. 在<beans>元素内,你可以放所有的Spring配置信息,包括<bean>元素的声明. 除了Bean ...
- Spring Cache抽象-基于XML的配置声明(基于EhCache的配置)
概述 完整示例 pomxml增加依赖 数据库表数据Oracle 实体类 服务层 ehcache的配置文件 Spring-EhCache配置文件 单元测试 日志输出 日志分析 示例源码 概述 首先请阅读 ...
最新文章
- 如何利用遗传算法进行自变量降维
- 小波包分解 matlab_多尺度一维小波分解
- 多线程面试题_100多线程和Java并发面试问答–最终清单(PDF下载)
- Fortran执行语句中的“双冒号” ::
- 安卓应用性能调试和优化经验分享
- AI 框架部署方案之模型转换
- 选中的磁盘具有MBR分区表,在EFI系统上,windows只能安装到GPT磁盘
- 如何用od去手动脱壳
- centos7构建kylo-0.10.1
- idea 2021版本错误提示反应慢
- ppt 如何加背景音乐
- python股市回测程序
- win10远程桌面_怎么选择Win10系统版本?家庭版与专业版的对比介绍
- android 修改系统默认时间24小时制
- 小语种-lisp-凡利于语言设计者的,也利于语言使用者
- 如何优雅地跟老板请假?
- ABBYY FastML:一种用于大型文档流处理的客户端机器学习新方案。
- 中国建筑设计公司排名
- 闲鱼疯转 6800 份!大厂内部数据分析资料首次公开!
- \t\t手纹里面的秘密
热门文章
- Java:十六进制转换成十进制
- Nginx 学习 —— 负载均衡
- GO select用法详解
- 深入理解 Session 与 Cookie
- java中引用一个文件数据_JAVA-基础-引用数据类型(类)
- 服务器 | 种类及区别
- 计算机设置从光盘启动怎么办,设置BIOS从光盘启动教程
- arraylist是如何扩容的?_ArrayList的源码分析
- c# vscode 配置_使用VSCode开发C#项目
- ML:MLOps系列讲解之《MLOps原则—迭代增量过程/自动化/持续部署/版本控制/实验跟踪/测试/监控/“ML成绩”系统/可再现性/松散耦合架构(模块化)/基于ML的软件交付指标等》解读