理解 Java 中的 Event(事件)机制,可以从“是什么、为什么用、怎么用、常见模型”四个层面来看。下面用尽量通俗的方式说明。
在 Java 中,**事件(Event)**通常表示“某个事情发生了”。
例如:
事件本身通常是一个对象,用来描述“发生了什么事”。
事件机制的核心目的是:
解耦:让“发生事情的地方”和“处理事情的地方”分开
没有事件时:
if (按钮被点击) {
执行业务逻辑
}
代码耦合严重。
有了事件:
按钮点击 → 发出事件 → 监听器处理
好处:
这是 Java 最早、最直观的事件模型。
Button button = new Button("点击我");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("按钮被点击了");
}
});
解释:
Button:事件源ActionEvent:事件对象ActionListener:监听器Java 提供了基础类:
java.util.EventObject
自定义事件示例:
public class UserLoginEvent extends EventObject {
public UserLoginEvent(Object source) {
super(source);
}
}
public interface UserLoginListener {
void onLogin(UserLoginEvent event);
}
UserLoginEvent event = new UserLoginEvent(this);
listener.onLogin(event);
Spring 对事件做了封装,使用非常简单。
public class OrderCreatedEvent extends ApplicationEvent {
public OrderCreatedEvent(Object source) {
super(source);
}
}
applicationEventPublisher.publishEvent(
new OrderCreatedEvent(this)
);
@Component
public class OrderListener {
@EventListener
public void handle(OrderCreatedEvent event) {
System.out.println("订单创建成功");
}
}
✅ 特点:
@Async)Java 事件机制本质上是:
观察者模式(Observer Pattern)
结构:
事件源(Subject)
↓ 通知
监听器(Observer)
Java 中的 Event 事件,就是“当某件事发生时,通知关心这件事的对象去处理”。
如果你愿意,我也可以:
你想从哪个角度继续?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。