1. 案例结构

2. 配置文件applicationContext.xml

<?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:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
">    <!--扫描MyAspect --><context:component-scan base-package="com.zhq.aspect"/><!--配置一个MyCalc --><bean class="com.zhq.aspect.MyCalc"/><!-- 配置切面类 --><bean id="myAspect" class="com.zhq.aspect.MyAspect"/><bean id="myLoggin" class="com.zhq.aspect.MyLoggin"/><!--切面配置  --><aop:config><!--切点表达式  --><aop:pointcut expression="execution(* com.zhq.aspect.MyCalc.*(..))" id="cut"/><!--配置切入点通知  --><aop:aspect ref="myAspect" order="2"><aop:before method="beFore" pointcut-ref="cut"/><aop:after method="beAfter" pointcut-ref="cut"/><aop:after-throwing method="afterThrowing" pointcut-ref="cut"/><aop:after-returning method="afterReturning" pointcut-ref="cut" returning="r"/></aop:aspect><aop:aspect ref="myLoggin" order="1"><aop:before method="beginLoggin" pointcut-ref="cut"/></aop:aspect></aop:config>
</beans>

2. 其他类

package com.zhq.aspect;import java.util.Arrays;import org.aspectj.lang.JoinPoint;
/*** 切面类,存放切面* */
public class MyAspect {//通告,用于织入到某个指定的切入点。@Before表示此切面是一个前置通知,它会在方法执行前执行。public void beFore(JoinPoint jp) {//取所有参数Object args[]=jp.getArgs();//获取方法名String name=jp.getSignature().getName();System.out.println(name+"方法准备执行...");System.out.println("输入参数:"+Arrays.toString(args));}public void beAfter() {System.out.println("方法执行结束。");}//返回通知public void afterReturning(JoinPoint jp,Object r) {//获取方法名String name=jp.getSignature().getName();System.out.println(name+"开始返回结果...");System.out.println("结果是:"+r);}//异常通知public void afterThrowing(JoinPoint jp) {//获取方法名String name=jp.getSignature().getName();System.out.println(name+"出现异常...");}
}
package com.zhq.aspect;public class MyCalc {//连接点,织入点public int add(int a,int b) {return a+b;}public int div(int a,int b) {return a-b;}public int chu(int a,int b) {return a/b;}
}
package com.zhq.aspect;/*** 切面类,存放切面* */
public class MyLoggin {public void beginLoggin() {System.out.println("开始日志....");}}
package com.zhq.aspect;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {public static void main(String[] args) {ApplicationContext cxt=new ClassPathXmlApplicationContext("config/applicationContext.xml");MyCalc ca=(MyCalc) cxt.getBean(MyCalc.class);//普通测试System.out.println(ca.add(10, 20));System.out.println(ca.div(10, 20));//异常测试/*System.out.println(ca.chu(10,0));*/}}

3. 测试效果

Spring关于AOP配置举例(XML配置文件方式)相关推荐

  1. spring的AOP配置之XML方式

    AOP概念 ⚫ AOP(Aspect Oriented Programing)面向切面编程,一种编程范式,隶属于软工范畴,指导开发者如 何组织程序结构 ⚫ AOP弥补了OOP的不足,基于OOP基础之上 ...

  2. spring的AOP配置之@注解方式

    AOP配置(注解) spring的AOP概念在spring的AOP配置之XML方式这骗博客中详细介绍了,这篇博客就直接开始介绍AOP配置需要那些注解 AOP注解详解 @Aspect 标志为一个切面类 ...

  3. spring中的注解和xml配置文件中配置对应总结

    spring中的注解和xml配置文件中配置对应 需要导入的jar spring-context spring-context-support spring-test commons-logging b ...

  4. spring xml配置文件方式和注解方式的优缺点

    xml配置文件方式优点: 1.降低耦合,使容易扩展. 2.对象之间的关系一目了然. 3.xml配置文件比注解功能齐全. xml配置文件方式缺点: 1.配置文件配置工作量相对注解要打. 注解方式优点: ...

  5. spring中事务配置的3种方式-2

    http://doc.javanb.com/spring-framework-reference-zh-2-0-5/ch09s05.html http://zpchen.iteye.com/blog/ ...

  6. 学习 Spring (十三) AOP 配置

    Spring入门篇 学习笔记 Spring 所有的切面和通知器都必须放在一个 内(可以配置包含多个 元素),每一个 可以包含 pointcut, advisor 和 aspect 元素(它们必须按照这 ...

  7. spring IOC基本配置(xml配置和注解配置)

    目录 Spring IOC IOC是什么 IOC可以做什么 依赖注入 IOC和DI IOC容器 Bean 配置IOC容器 spring ioc 依赖 XML配置 实例化容器 使用容器 xml配置详解 ...

  8. mysql+xml+注释,springboot整合mybatis完整示例, mapper注解方式和xml配置文件方式实现(我们要优雅地编程)...

    一.注解方式 pom org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.0 mysql mysql-connector-java org. ...

  9. 简单的hibernate环境搭建、自动生成model/配置/hibernate.xml配置文件

    自己亲测的东西才是最有效果的,下面贴出整个编写的过程. 1 hibernate环境搭建,这个博客非常给力:http://www.111cn.net/wy/js-ajax/93142.htm 需要用到的 ...

  10. Spring项目启动加载xml配置文件替换数据库提高响应速度

    文章目录 1. pom依赖 2. xml配置文件 3. 获取参数工具类 4. 根据beanId从SpringBootIOC获取类实例工具类 5. 测试类 6. 浏览器+控制台验证 1. pom依赖 & ...

最新文章

  1. 区块链BaaS云服务(29) 溪塔科技 CITA-Cloud
  2. SSL服务器配置评级指南
  3. MapReduce Job本地提交过程源码跟踪及分析
  4. Hibernate中1+N问题以及解决方法
  5. ios时间相差多少天_iOS 计算某个时间到现在是多少月/天/时
  6. Tensorflow2.0(1):加载图片数据集--TFRecord
  7. 关于js弹出框的介绍:
  8. 标准h5的定位_H5地理定位
  9. 程序functionLua基础 小结(两个Lua程序示例)
  10. 荣新广源B班20121207作业
  11. 数据库基础知识(学习笔记)
  12. 雷达 航迹跟踪 matlab,一种基于MATLAB建模的雷达航迹显示求解方法与流程
  13. CSI-RS接收流程
  14. 关于memset函数和赋值0x3f,2021-5-5
  15. centos 6.5安装步骤
  16. ubuntu启动报错kernel panic
  17. 【ZZULIOJ】1053: 正弦函数
  18. Mysql查询数据之基本和多条件查询
  19. Mac | 替换系统自带的壁纸
  20. 驯龙高手java版_石器时代2驯龙高手

热门文章

  1. 数据可视化(全彩)(大数据丛书,首次全面细致地梳理了可视化理论,方法、工具与应用案例。马匡六教授、石教英教授鼎力推荐,十二五国家重点图书出版规划项目)
  2. Pyecharts上的颜色设置
  3. LTE-5G学习笔记17--COMP技术讲解
  4. ecshop模板支持php,ecshop模板不支持引入PHP语句的解决方法
  5. python画成绩正态分布图_R统计学(09): 正态分布 (二)
  6. 《Head First设计模式》中文版 读书笔记
  7. 百度大脑手写文字识别使用攻略
  8. Java8之深克隆与浅克隆
  9. 错误排查:packet_write_wait: Connection to XXX XXX XXX XXX port 22: Broken pipe
  10. 博弈论python实例_博弈论读书笔记(七)贝叶斯博弈举例和显示原理