Spring关于AOP配置举例(XML配置文件方式)
2018-01-24 09:40
696 查看
1. 案例结构
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/17/8c76709c6266b821e5eace77fe1ffeff)
2. 配置文件applicationContext.xml
2. 其他类
3. 测试效果
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. 测试效果
相关文章推荐
- 关于SpringAOP的XML方式的配置
- Spring中的AOP(六)——基于XML配置文件方式的AOP
- 8.4.6: Spring的AOP---基于XML配置文件的管理方式
- spring之aop编程——基于注解、xml配置文件方式
- [5] Spring中的AOP操作(使用xml 配置文件的方式)
- 8 -- 深入使用Spring -- 4...6 AOP代理:基于注解的XML配置文件的管理方式
- Spring关于AOP配置举例(注解方式)
- Spring中的AOP(六)——基于XML配置文件方式的AOP
- Spring中的AOP(七)——基于XML配置文件方式的AOP
- spring 中加载xml配置文件的方式
- spring 中加载xml配置文件的方式.
- spring的配置文件在web.xml中加载的方式
- spring aop的使用(注解方式以及基于xml配置方式)
- spring中加载xml配置文件的方式
- Spring中加载xml配置文件的方式
- SSH整合-关于Spring中applicationContext.xml文件对于事务的一些配置
- Spring中加载XML配置文件的方式
- spring 中加载xml配置文件的方式
- spring中加载xml配置文件的方式
- Spring中加载XML配置文件的方式