springboot 事件
时间: 2025-01-04 12:33:12 浏览: 34
### Spring Boot 事件处理机制
#### 定义与发布事件
在 Java Spring Boot 应用程序中,事件驱动架构被广泛应用来实现组件间的松散耦合。为了创建自定义事件,开发者通常会继承 `ApplicationEvent` 类[^2]。
```java
public class CustomEvent extends ApplicationEvent {
private String message;
public CustomEvent(Object source, String message) {
super(source);
this.message = message;
}
public String getMessage() {
return message;
}
}
```
当需要触发该事件时,可以通过 `applicationContext.publishEvent()` 方法完成:
```java
@Autowired
private ApplicationContext applicationContext;
public void publishCustomEvent(String msg){
CustomEvent customEvent = new CustomEvent(this,msg);
applicationContext.publishEvent(customEvent);
}
```
#### 注册监听器
对于希望响应特定类型的事件的对象来说,应该实现 `ApplicationListener<E>` 接口,在其中指定要监听的事件类型 E 并重写 onApplicationEvent 方法以定义具体的业务逻辑。
```java
@Component
public class CustomEventListener implements ApplicationListener<CustomEvent> {
@Override
public void onApplicationEvent(CustomEvent event) {
System.out.println("Received custom event - " + event.getMessage());
}
}
```
除了上述方法外,还可以利用注解的方式更加简洁地注册监听器。只需给目标类的方法加上 `@EventListener` 即可自动将其标记为某个或某些类型事件的处理器。
```java
@Component
public class AnotherCustomEventListener {
@EventListener
public void handleCustomEvent(CustomEvent event) {
System.out.println("@EventListener Received another custom event - " + event.getMessage());
}
}
```
这种基于注解的方式来编写监听器不仅减少了样板代码的数量,而且提高了灵活性和易读性。
阅读全文
相关推荐


















