通知订阅,事件发布,观察者模式几种方式使用

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");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值