当我们登录的时候,有时需要发送短信,赠送积分等,为了保证代码单一原则以及开闭原则,可以使用ApplicationListener 代码如下
1:创建事件
public class UserEvent extends ApplicationEvent {
String userName;
public UserEvent(String userName) {
super(userName);
this.userName=userName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
2:创建监听事件
发送短信
public class SmsListener implements ApplicationListener<UserEvent> {
@Override
public void onApplicationEvent(UserEvent event) {
System.out.println("发送短信"+event.getUserName());
}
}
发送邮件
public class EmailListener implements ApplicationListener<UserEvent> {
@Override
public void onApplicationEvent(UserEvent event) {
System.out.println("发送邮件"+event.getUserName());
}
}
3:发布事件
public class text {
@Autowired
private ApplicationContext applicationContext;
public void login() {
//用户登录
System.out.println("用户登录===========");
//发布事件
applicationContext.publishEvent(new UserEvent("张三"));
}
}