spring自定义监听器监听某个方法,在方法执行前后做一些操作
时间: 2023-01-11 13:55:36 浏览: 108
在 Spring 中,可以通过实现 ApplicationListener 接口来创建自定义监听器。ApplicationListener 接口有一个 onApplicationEvent(E event) 方法,在接收到事件时会自动调用该方法。
通常情况下,我们会创建一个类来实现 ApplicationListener 接口,并在类中实现 onApplicationEvent() 方法,然后在需要监听的方法执行前后发布相应的事件。
例如,假设有一个名为 "doSomething()" 的方法,我们想在执行该方法之前和之后做一些操作。我们可以这样做:
1. 创建自定义事件类,继承 ApplicationEvent 类。例如:
```
public class DoSomethingEvent extends ApplicationEvent {
public DoSomethingEvent(Object source) {
super(source);
}
}
```
2. 创建自定义监听器类,实现 ApplicationListener 接口。在 onApplicationEvent() 方法中,通过 instanceof 关键字判断事件类型,并在相应的方法执行前后做一些操作。例如:
```
public class DoSomethingListener implements ApplicationListener<DoSomethingEvent> {
@Override
public void onApplicationEvent(DoSomethingEvent event) {
// 在方法执行前做一些操作
System.out.println("Do something before");
// 调用 doSomething() 方法
doSomething();
// 在方法执行后做一些操作
System.out.println("Do something after");
}
private void doSomething() {
// 这里是 doSomething() 方法的具体实现
}
}
```
3. 在需要调用 doSomething() 方法的地方,发布 DoSomethingEvent 事件。例如:
``
阅读全文