java的监听器实现

我们都知道,我们的spring容器是通过classLoaderListener来创建的,而ClasssLoaderListener实现了ServletListener接口,这样,在比如tomcat初始化servlet容器时,我们就可以创建出我们的spring容器了。
下面我就来讲一下java中监听器是怎么样实现的。先来讲一下原理
java中的监听器涉及到三个对象,事件源,事件对象,事件监听器对象。首先是将事件监听器对象注册到事件源上,然后当事件源触发事件时,通过回掉将事件对象传给事件监听器对象,然后事件监听器对象来调用相关的监听的方法。
事件对象,Person对象,eat方法

public class Person{ private PersonListener personListener;

public void registerListener(PersonListener personListener){ this.personListener=personListener; } public void eat(){ if(personListener!=null){ Event event=new Event(this); this.personListener.doEat(event); } System.out.println("人吃饭"); } }

事件对象 Event
public class Event{ private Person person; public Event(Person person){ this.person=person; } public Perosn getPerson(){ return this.person; } public void setPerson(Person person){ this.person=person; } }

事件监听对象 PersonListener
public interface PersonListener{ public void doEat(Event event); }

事件监听器的实现类 PersonListenerImpl
public class PersonListenerImpl implements PersonListener{ public void doEat(Event event){ System.out.println("人吃东西之前执行"); } }

【java的监听器实现】测试方法 TestPersonListener
public class TestPersonListener{ public static void main(String[] args){ Person person=new Person(); person.registListener(new PersonListener()); person.eat(); } }


    推荐阅读