Spring 采用ObServer设置模式实现事件传递
定义自己的事件
1、实现ApplicationListener 创建事件监听
public class EventListener implements ApplicationListener
{
private String to;
public void setTo(String to)
{
this.to = to;
}
public void onApplicationEvent(ApplicationEvent event)
{
if (event instanceof ObServerEvent)
{
ObServerEvent ev = (ObServerEvent) event;
System.out.println(ev.getAdress() + " send mail to " + to);
}
}
}
实现 ApplicationContextAware 创建观察者
public class ObServer implements ApplicationContextAware
{
String from;
String message;
public String getFrom()
{
return from;
}
public void setFrom(String from)
{
this.from = from;
}
继承 ApplicationEvent 实现事件
public class ObServerEvent extends ApplicationEvent
{
private String adress;
private String text;
public ObServerEvent(Object source, String address, String text)
{
super(source);
this.adress = address;
this.text = text;
}
public String getAdress()
{
return adress;
}
public String getText()
{
return text;
}
/**
*
*/
private static final long serialVersionUID = 1L;
}
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
this.message = message;
}
private ApplicationContext ctx;
public void setApplicationContext(ApplicationContext ctx)
throws BeansException
{
this.ctx = ctx;
}
public void sendMail()
{
ObServerEvent event = new ObServerEvent(this, from, message);
ctx.publishEvent(event);
}
}
applicationContext.xml
<bean id="obServer" class="observer.ObServer">
<property name="from"><value>A</value>
</property>
<property name="message"><value>XXXXXX</value>
</bean>
<bean id="eventListener" class="observer.EventListener">
<property name="to">
<value>B</value>
</property>
</bean>
测试
ObServer eventBean = (ObServer) context.getBean("obServer");
eventBean.sendMail();
分享到:
相关推荐
Observer设计模式是一种经典的设计模式,在GOF 23种设计模式种 比较常用于实际。主要是有类指针传递并引用方法和消息传递响应的方法来实现。
以实例方式详细讲述了委托、事件与Observer设计模式,每一步都有注释说明,便于大家理解。 适合新手入门理解什么是委托、事件与Observer设计模式
详解C#委托,事件,Observer设计模式 1.将方法作为方法的参数 2.将方法绑定到委托 3.事件的由来 4.事件和委托的编译代码 5.委托、事件与Observer设计模式 6..Net Framework中的委托与事件
Head First模式设计用的是Java,实现观察者模式使用C++
委托是.Net Framework提供的类型安全的回调机制。委托本质上是类,类里面实现了带有方法指针的构造函数、Invoke、BeginInvoke和...本文重点不在于讨论委托和事件机制,而是通过事件如何方便的实现项目要求的内容。
这里面是我根据observer设计模式的原理,自己写的代码!希望能给大家带来帮助!!
对Observer模式的实现,引入后可直接使用。 包括传统实现和遵循AOP思想的实现
此文档有助于学习C#委托、事件和Observer设计模式。
观察者模式中推拉模式两种实现方式,主要是针对开发的一个项目的模型抽象出来的。有一个项目,有压力传感器、位移传感器、震动传感器等多种传感器每种类型有若干个传感器,对每个传感器做特定操作会引发历史曲线图、...
设计模式C++学习之观察者模式(Observer)
设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住了23种(或更多)设计场景和解决策略(实际上这也是很重要的一笔财富),实际接受的是一种思想的熏陶和洗礼,等这种思想...
C#面向对象设计模式纵横谈(19):(行为型模式) Observer 观察者模式 (Level 300)
在vc6.0中利用函数指针和接口两种方法实现observer模式的示例
设计模式培训-observer
设计模式精解-GoF 23种设计模式解析附C++实现源码 AbstractFactory模式、Adapater模式、Composite模式、Decorator模式、Factory模式、Observer模式、Strategy模式、Template模式
1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之Observer 9、...
设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
观察者模式 概述 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 适用性 ... 实现Observer的更新接口以使自身状态与目标的状态保持一致
observer观察者模式