Spring的AOP应用实例

本文通过一个具体的示例展示了如何使用 Spring AOP 实现方法前和方法后的通知功能。示例中定义了两个通知类,分别用于在目标方法执行前和执行后输出特定消息。此外还提供了一个测试类来验证通知是否按预期工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/** * 实现org.springframework.aop.MethodBeforeAdvice */ public class WelcomeAdvice implements MethodBeforeAdvice{ public void before(Method method, Object[] objects, Object o) throws Throwable { System.out.println("Welcome,这是MethodBeforeAdvice的before方法!"); } }/** *实现了org.springframework.aop.AfterReturningAdvice */ public class ThankYouAdvice implements AfterReturningAdvice{ public void afterReturning(Object o, Method method, Object[] objects, Object o1) throws Throwable { System.out.println("Thank you, come again! 这是 AfterReturningAdvice的afterReturning方法!"); } }public interface IAopTest { void test(); } public class AopTest implements IAopTest{ public void test() { System.out.println("Aop Testing......."); } }public class TestResultImpl { private IAopTest aopTest; public void setAopTest(IAopTest aopTest) { this.aopTest = aopTest; } public void test() { aopTest.test(); } }<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--创建目标代理对象--> <bean id="aopTest" class="aop.AopTest"/> <!--创建前置通知--> <bean id="welcomeAdvice" class="aop.WelcomeAdvice"/> <!--创建后置通知--> <bean id="thankYouAdvice" class="aop.ThankYouAdvice"/> <!--创建代理bean开始--> <bean id="proxyFactoryBean" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces" value="aop.IAopTest"/> <property name="interceptorNames"> <list> <value>welcomeAdvice</value> <value>thankYouAdvice</value> </list> </property> <property name="target" ref="aopTest"/> </bean> <bean id="testResult" class="aop.TestResultImpl"> <property name="aopTest" ref="proxyFactoryBean"/> </bean> </beans>/** * 这是测试代码 */ public class MyTest { @Test public void test() { ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[] {"aop/test.xml"}); TestResultImpl aopTest = (TestResultImpl)ctx.getBean("testResult"); aopTest.test(); } }

这是测试结果:

Welcome,这是MethodBeforeAdvice的before方法!
Aop Testing.......
Thank you, come again! 这是AfterReturningAdvice的afterReturning方法!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值