Java事件/监听器编程模型
- 设计模式-观察者模式扩展
•可观者对象(消息发送者)-java.utiLObservable
•观察者-java.util.Observer - 标准化接口
•事件对象-java.utiLEventObject
•事件监听器-java.util. EventListener
面向接口的事件/监听器设计模式
Java技术规范 | 事件接口 |
JavaBeans java, beans. PropertyChangeEvent | java, beans. PropertyChangeListener |
Java AWT | java.awt. event. MouseEvent |
Java Swing | javax.swing.event.MenuEvent |
Java Preference | java. util, prefs. PreferenceChangeEvent |
面向注解的事件/监听器设计模式
Java技术规范 | 事件注解 |
Servlet 3.0+ | – |
JPA 1.0+ | @javax. persistence. PostPersist |
Java Common | @PostConstruct |
EJB 3.0+ | @javax.ejb.PrePassivate |
JSF 2.0+ | @javax.faces.event.ListenerFor |
Spring 标准事件-ApplicationEvent
- Java 标准事件 java.util.EventObject 扩展
– 扩展特性:事件发生事件戳 - Spring 应用上下文 ApplicationEvent 扩展-ApplicationContextEvent
– Spring应用上下文(Applicationcontext)作为事件源
– 具体实现:
•org.springframework.context.event.ContextClosedEvent
•org.springframework.context.event.ContextRefreshedEvent
•org.springframework.context.event.ContextStartedEvent
•org.springframework.context.event.ContextStoppedEvent
基于接口的Spring事件监听器
- Java 标准事件监听器 java.util.EventListener 扩展
– 扩展接口 - org.springframework.context.ApplicationListener
– 设计特点:单一类型事件处理
– 处理方法:onApplicationEvent(ApplicationEvent)
– 事件类型:org.springframework.context.ApplicationEvent