java的监听器实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41751625/article/details/79922115

    我们都知道,我们的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("人吃东西之前执行");
  }
}

测试方法 TestPersonListener

public class TestPersonListener{
  public static void main(String[] args){
     Person person=new Person();
     person.registListener(new PersonListener());
     person.eat();
  }
}

猜你喜欢

转载自blog.csdn.net/weixin_41751625/article/details/79922115
今日推荐