注释都是自我理解,都是大白话,我回头忘了看一遍就能想起来
框架:Springboot
说实在的,我快不会用之前的ssm框架了,boot真的用起来超级方便啊
事件触发的环境
@Service
public class Context {
//这个类是Spring的类,属于事件的幕后推手。看似无用,实则掌控全局
@Autowired
private ApplicationEventPublisher applicationEventPublisher;
public String test (String str){
applicationEventPublisher.publishEvent(new EventA(this,new A(str,"女")));
return str;
}
}
事件Dto
//必须继承ApplicationEvent这个类,这样才能让幕后推手知道这是个事件
public class EventA extends ApplicationEvent {
//action需要的某些参数,在这里被定义
private A booking;
//这里的构造函数有没有注意到有一个Object类型参数,这就是幕后推手!!!!
public EventA(Object source, A booking) {
super(source);
this.booking = booking;
}
public EventA(Object source) {
super(source);
}
public A getA() {
return booking;
}
}
action(事件驱动模型,驱动的就是这个action)
@Service
public class LisenerA {
//加上这个注解,表明这是一个action;注解的值呢,就是你要被哪个事件驱动,你就写哪个事件
@EventListener(classes = EventA.class)
public void lisenerA(EventA a) {
System.out.println(a.getA());
}
}
备注:
事件驱动模型=触发的事件+事件bean+action。
数量 = N + 1 +1;
优点?
代码上看不出啥来,,还要多定义一个类,对,代码解耦了,并且保证了程序的原子性,
实际上是为了项目运行的时候,浪费CPU的资源,让CPU在没有事件触发的时候,让它休息一会。
OS:我太菜了,也没个人关注。不然关注了,就取消了