SpringBootjs css htmlspring

发布订阅 - 确保用户注册成功发送短信通知

2022-06-29  本文已影响0人  flyjar

Spring事务监听机制—使用@TransactionalEventListener处理数据库事务提交成功后再执行操作

/**
 * 定义个被监听的元素
 * @author jarfly
 */
@Data
@AllArgsConstructor
public class UserEvent {
    /**
     * 用户信息
     */
    private final User user;

}

2、定义监听事件

@Component
public class UserEventListener {

 @TransactionalEventListener(value = TestObjectEvent.class,phase = TransactionPhase.AFTER_COMMIT )
void onSaveUserEvent(SaveUserEvent event) {
    Integer id = event.getEventData();
    User u = userDao.getUserById(id);
    String phone = u.getPhoneNumber();
    MessageUtils.sendMessage(phone);
}

}

3、发布事件

@Service
public class UserServiceImpl  implements UseService {
 @Autowired
 private ApplicationContext applicationContext;

@Transaction
void saveUser(User u) {
    //保存用户信息
    userDao.save(u);
    //触发保存用户事件
    applicationContext.publishEvent(new SaveUserEvent(u.getId()));
   }
}
上一篇 下一篇

猜你喜欢

热点阅读