EventBus如何使用
第一步注入依赖包:
@Autowired
private EventBus eventBus;
private void detail(String s) {
。。。。。。。
其他代码
。。。。。。。
eventBus.post(new PaidEvent(payment.getId()));
。。。。。。。
其他代码
。。。。。。。
}
PaidEvent 主要是起到传参,还有一个就是标识订阅的消息应该被谁处理
PaidEvent :
import lombok.Data;
import java.io.Serializable;
@Data
public class PaidEvent implements Serializable {
private static final long serialVersionUID = -6644619841667383883L;
private Long paymentId;
public PaidEvent(Long paymentId) {
this.paymentId = paymentId;
}
}
然后是接收到请求处理订阅消息了,这里也需要注入EventBus :
@Autowired
private EventBus eventBus;
@PostConstruct
public void register() {
eventBus.register(this);
}
@Subscribe
public void onSharePaymentPaid(PaidEvent event) {
Long paymentId = event.getPaymentId();
.....................代码逻辑
}
@PostConstruct 为什么用这个注解,大概意思就是需要将eventBus先注入进来,好进行接收订阅
@Subscribe 将方法标记为事件订阅器。