spring自定义监听器怎么监听具体的方法
时间: 2023-01-11 14:55:36 浏览: 119
boot-example-event-2.0.5
在 Spring 中,您可以通过实现 ApplicationListener 接口来创建自定义监听器。ApplicationListener 接口有一个 onApplicationEvent() 方法,该方法在特定事件发生时调用。要监听具体的方法,您需要发布一个特定类型的事件,然后在自定义监听器的 onApplicationEvent() 方法中处理该事件。
下面是一个简单的示例,演示如何创建自定义监听器来监听方法的调用:
```java
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
public class CustomMethodCallEvent extends ApplicationEvent {
private String methodName;
public CustomMethodCallEvent(Object source, String methodName) {
super(source);
this.methodName = methodName;
}
public String getMethodName() {
return methodName;
}
}
public class CustomMethodCallListener implements ApplicationListener<CustomMethodCallEvent> {
@Override
public void onApplicationEvent(CustomMethodCallEvent event) {
// 处理事件
System.out.println("Method " + event.getMethodName() + " was called.");
}
}
```
然后,您可以在需要监听的方法中发布事件:
```java
import org.springframework.context.ApplicationEventPublisher;
public class SomeService {
private final ApplicationEventPublisher eventPublisher;
public SomeService(ApplicationEventPublisher eventPublisher) {
this.eventPublisher = eventPublisher;
}
public void someMethod() {
// 调用方法
eventPublisher.publishEvent(new CustomMethodCallEvent(this, "someMethod"));
}
}
```
最后,在 Spring 配置中将自定义监听器注册为 Spring Bean 即可。
阅读全文