Spring小白到菜鸟之Spring事件入门

下面使用一个模拟发送邮件的程序学习Spring事件

定义Spring事件类需要实现AppicationEnvent的子类。

package four;

import org.springframework.context.ApplicationEvent;

/**
 *   Spring的事件类
 */
public class EventMail extends ApplicationEvent {

    private String text;
    private String address;

    public EventMail(Object source) {
        super(source);
    }

    public EventMail(Object object, String text, String address) {
        super(object);
        this.text = text;
        this.address = address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public void setText(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }
}

实现一个Spring事件的监听类。需要实现ApplicationListener接口。

package four;

import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;

/**
 *    Spring事件监听类
 */
public class EmailNotifer implements ApplicationListener<ApplicationEvent> {

    @Override
    public void onApplicationEvent(ApplicationEvent event) {

        if (event instanceof EventMail) {
            EventMail eventMail = (EventMail) event;
            System.out.println("需要发送邮件的地址 " + eventMail.getAddress());
            System.out.println("需要发送邮件的正文 " + eventMail.getText());
        } else {
            System.out.println("其它事件" + event);
        }

    }

}

在xml配置事件监听类

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="    
          http://www.springframework.org/schema/beans    
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    <!-- 配置监听器 -->
    <bean class="four.EmailNotifer" />
</beans>
package four;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDemo {

    public static void main(String[] args) {

        ApplicationContext ctx = new ClassPathXmlApplicationContext("four.xml");
        EventMail mail=new EventMail("post mail", "Jerry", "NewYork");
       // 发布容器事件
        ctx.publishEvent(mail);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值