1、Spring中实现aware接口
发布的消息:继承ApplicationEvent
发布者:实现ApplicationEventPublisherAware
观察者:实现ApplicationListener<>
2、Spring注解方式(同步)
发布的消息:继承ApplicationEvent
发布者:@Autowired private ApplicationEventPublisher applicationEventPublisher;
观察者:在需要接收数据的方法上@EventListener
通过debug,发现其本质上就是aware方式
3、Spring注解方式(异步)
在方式2的基础上,对观察者再添加@Async注解,并且在启动类上添加@EnableAsync
4、java原始方式(同步)
发布者:继承Observable
观察者:实现Observer
public class PublishObserver extends Observable {
public PublishObserver() {
setChanged();
}
}
public class ListenerObserver implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println("收到数据"+arg.toString());
}
}
public class ObserverMain {
public static void main(String[] args) {
PublishObserver p=new PublishObserver();
p.addObserver(new ListenerObserver());
p.notifyObservers("12434343");
}
}