发短信功能
@Service // spring托管
public class OrderService {
@Autowired
ApplicationContext applicationContext;
/**
* 电商 - 新订单 -- 不断维护(外包除外)--- 后面接手的人 才是接盘
*/
public void saveOrder() {
// TODO 主要职责:创建订单 -- 不符合:单一职责,开闭原则
// 1 ---创建订单--- TODO 此处省略100行代码
System.out.println("1、 订单创建成功");
// 源头 -- 事件产生之处。--- 原理表述: 产生一个事件,触发相关的监听器执行
OrderEvent orderEvent = new OrderEvent("参数");
applicationContext.publishEvent(orderEvent);
}
}
订单事件
public class OrderEvent extends ApplicationEvent {
public OrderEvent(Object source) {
super(source);
}
}
短信
// 订单事件的监听器
@Component // 交给spring托管 -- 创建对象并且保留在IOC容器
public class SmsListener implements ApplicationListener<OrderEvent> {
@Override
public void onApplicationEvent(OrderEvent event) {
// 2 --- 发送短信 --- TODO 此处省略短信接口调用的N行代码
System.out.println("2、 短信发送成功");
}
}
微信
// 订单事件的监听器
@Component // 交给spring托管
public class WxListener implements ApplicationListener<OrderEvent> {
@Override
public void onApplicationEvent(OrderEvent event) {
// 3 --- 发送微信通知 ----
System.out.println("3. 发送微信消息");
}
}
原文:https://www.cnblogs.com/Jomini/p/13047311.html