7.4.4 ApplicationContext的事件机制
ApplicationContext的事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationContext的事件处理。如果容器中有一个ApplicationListener Bean每当ApplicationContext发布ApplicationEvent时, ApplicationListener Bean将自动被触发。Spring的事件框架有如下两个重要成员。
ApplicationEvent:容器事件,必须由ApplicationContext发布。ApplicationListener:监听器,可由容器中的任何监听器Bean担任。
实际上, Spring的事件机制与所有的事件机制都基本相似,它们都需要由事件源、事件和事件监听器组成。只是此处的事件源是ApplicationContext,且事件必须由Java程序显式触发。
程序示例
下面的程序将示范Spring容器的事件机制。程序先定义了一个ApplicationEvent类,其对象就是个Spring容器事件。 ApplicationEvent类的代码如下。