zoukankan      html  css  js  c++  java
  • Spring事件和监听器

    Application下抽象子类ApplicationContextEvent的下面有4个已经实现好的事件 

    1. ContextClosedEvent(容器关闭时) 
    2. ContextRefreshedEvent(容器刷新是) 
    3. ContextStartedEvent(容器启动时候) 
    4. ContextStoppedEvent(容器停止的时候) 

    同样,这四个事件都继承了ApplicationEvent,如果我们想自定义事件,也可以通过继承ApplicationEvent来实现 

    使用示例:

    1.新建一个MyEvent的类,继承ApplicationEvent抽象类

    复制代码
    public class MyEvent extends ApplicationEvent {
        //存放构造器送入的值
        private String msg;
        //构造器参数可以随意设置,这里为了方便调试,设置为字符串
        public MyEvent(String msg) {
            super(msg);
            this.msg=msg;
        }
        //自定义一个方法,这个方法也可以随意写,这里也是测试用
        public void myevent(){
            System.out.println("********My event**************");
            System.out.println(msg);
            System.out.println("*******************************");
        }
    }
    复制代码

    2.新建一个监听器MyListener

    复制代码
    //注入IOC容器中
    @Service("myListener")
    public class MyListener implements ApplicationListener<ApplicationEvent> {
        //调用ApplicationContext.publishEvent方法时会触发执行该方法
        @Override
        public void onApplicationEvent(ApplicationEvent event) {
            //判断事件为MyEvent时候执行
            if(event instanceof MyEvent){
                //强制转换
                MyEvent evt=(MyEvent) event;
                //执行自定义事件中的自定义方法
                evt.myevent();
            }
        }
    
    }
    复制代码

    3.在测试类中发布通知publishEvent;

    复制代码
    public class Test {
      public static void main(String[] args) {
          ApplicationContext context = new ClassPathXmlApplicationContext ("classpath: applicationContext.xml");
          MyEvent event = new MyEvent ("hello");
         context.publishEvent(event);
       }
    }
    复制代码

    ********My event**************

    hello

    *******************************

  • 相关阅读:
    VGA实验 :逻辑分析仪
    VGA实验:点亮屏幕
    ASP.NET 4‎.0 生成 eurl.axd Http异常错误的处理方法 (汗IIS 怎这么多莫名其妙的问题)
    腾讯检测 IP 省市的接口
    hql 中cast 方法的使用
    asp.net 防止外部提交数据(转)
    为 SQL Server 启用缓存通知
    net中前台 javascript与后台c#函数相互调用
    const 与 readonle 的异同
    获取页面执行时间的几种方法(asp.net转)
  • 原文地址:https://www.cnblogs.com/itplay/p/10742094.html
Copyright © 2011-2022 走看看