先实现自定义事件
public class MyEvent extends ApplicationEvent {
public MyEvent(Object source) {
super(source);
}
public void printMsg(String msg) {
System.out.println("监听到事件发送邮件:" + MyEvent.class + "---{}" + msg);
}
public void printMsg2(String msg) {
System.out.println("监听到事件发送短信:" + MyEvent.class + "---{}" + msg);
}
}
用户注册业务后发送邮件和短信
@Service
public class UserRegistryService implements ApplicationEventPublisherAware {
private ApplicationEventPublisher applicationEventPublisher;
public void registry(String userName){
System.out.println("用户【"+userName+"】注册成功");
applicationEventPublisher.publishEvent(new MyEvent(this));
}
@Override
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
this.applicationEventPublisher = applicationEventPublisher;
}
}
监听用户注册事件
@Component
public class MyEventListener {
@EventListener
@Order(2)
public void sendMail(MyEvent sourceEvent){
sourceEvent.printMsg("发送邮件-----");
}
@Order(1)
@EventListener
public void sendSmg(MyEvent sourceEvent){
sourceEvent.printMsg2("发送短信-----");
}
}
测试
@SpringBootTest
public class MyEventTest {
@Autowired
private UserRegistryService userRegistryService;
@Test
public void test(){
userRegistryService.registry("dongjunrong");
}
}
用户【dongjunrong】注册成功
监听到事件发送短信:class com.pro.springbootpro.event.MyEvent---{}发送短信-----
监听到事件发送邮件:class com.pro.springbootpro.event.MyEvent---{}发送邮件-----