继承ApplicationEvent 类设计模式
public class BusinessEvent extent ApplicationEvent {
public BusinessEvent(Object source) {
super(source);
}
}
复制代码
@Component
public class OwnBusinessEventListener implements ApplicationListener<BusinessEvent> {
@Override
public void onApplicationEvent(BusinessEvent event) {
//TODO
System.out.println("执行本身的业务逻辑");
}
}
复制代码
@Autowired
private ApplicationContext context;
void xxxMethod() {
//TODO previous business code
BusinessEvent event = new BusinessEvent("");
context.publishEvent(event);
}
复制代码
若是须要在一个业务中同时有多个任务处理,则只须要建立一个新的 ApplicationListener 的实现类便可,内部定义本身的处理逻辑。bash
1. 当主业务流程执行时,全部监听BusinessEvent的监听器都会收到通知,从而执行业务
2. 此功能对应设计模式中的观察者模式:一个改变,全部观察者均能收到通知。
复制代码