spring_03事件机制

来源:互联网 发布:cocos2d-js api 编辑:程序博客网 时间:2024/06/07 07:01

spring的事件机制主要成员有这两名大将
(1)ApplicationEvent:容器事件,由ApplicationContext发布
(2)ApplicationListener:监听器,可以由容器中的任何bean担任。

上代码!

事件类

package com.demo.impls;import org.springframework.context.ApplicationEvent;public class EmailEvent extends ApplicationEvent{    private String address;    private String text;    public EmailEvent(Object source) {        super(source);    }    public EmailEvent(Object source , String address , String text){        super(source);        this.address = address;        this.text = text;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    public String getText() {        return text;    }    public void setText(String text) {        this.text = text;    }}

监听类

package com.demo.impls;import org.springframework.context.ApplicationEvent;import org.springframework.context.ApplicationListener;public class EmailNotifier implements ApplicationListener{    @Override    public void onApplicationEvent(ApplicationEvent evt) {        if(evt instanceof EmailEvent){            EmailEvent emailEvent = (EmailEvent)evt;            System.out.println("email address:" + emailEvent.getAddress());            System.out.println("email text:" + emailEvent.getText());        }else{            System.out.println("else event:" + evt);        }    }}

beans.xml

<bean class="com.demo.impls.EmailNotifier"></bean>

Test测试

package com.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.demo.impls.EmailEvent;public class Test03 {    public static void main(String[] args) {        ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");        EmailEvent evt = new EmailEvent("wu","wangjie@163.com","hello what");        ctx.publishEvent(evt);    }}

最终结果
email address:wangjie@163.com
email text:hello what
else event:com.demo.impls.EmailEvent[source=wu]

0 0
原创粉丝点击