spring监听某个方法
时间: 2023-08-08 12:12:42 浏览: 84
深入探索Spring事件监听机制:技术与应用
你可以使用Spring AOP(面向切面编程)来监听某个方法的调用。具体步骤如下:
1. 创建一个类,实现Spring的MethodInterceptor接口。
2. 在该类中实现intercept方法,该方法会在目标方法被调用时被执行。
3. 在配置文件中声明一个Advisor,用于将该类与目标方法绑定。
4. 在配置文件中声明一个ProxyBean,用于代理目标类。
下面是一个示例代码:
```java
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class MyMethodInterceptor implements MethodInterceptor {
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
System.out.println("Before method execution");
Object result = invocation.proceed();
System.out.println("After method execution");
return result;
}
}
```
在配置文件中声明Advisor和ProxyBean:
```xml
<bean id="myMethodInterceptor" class="com.example.MyMethodInterceptor" />
<bean id="targetBean" class="com.example.TargetClass" />
<bean id="proxyBean" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="targetBean" />
<property name="interceptorNames">
<list>
<value>myMethodInterceptor</value>
</list>
</property>
</bean>
<aop:config>
<aop:advisor advice-ref="myMethodInterceptor" pointcut="execution(* com.example.TargetClass.targetMethod(..))" />
</aop:config>
```
这样,当TargetClass类中的targetMethod方法被调用时,MyMethodInterceptor中的intercept方法会被执行。
阅读全文